【保姆级教程】用IDEA2023版本给RuoYi-Vue添加子模块

news2024/11/26 0:30:45

文章目录

  • 前言
  • 添加子模块
    • 新建子模块
    • 新建子模块界面?
    • 新建子模块界面!
  • 修改pom依赖
  • 配置RuoYiApplication
  • 添加测试接口
  • 配置接口权限
  • 测试

前言

若依前后端分离框架能够极大方便当前开发任务,并且使用的技术栈也相当丰富,但是目前只提供了一些基础的模块,如果要添加新的模块,需要自己手动添加。这里面会存在一大堆问题。

添加子模块

在较早的IDEA版本中,我们能够看到创建模块基本上是如这类文章所示。但是,如果你手眼通天,一下子就能够拿到比较新的IDEA2023版本,那么就会看到这些玩意并不一样。

新建子模块

首先是新建,这一步差别不大。

添加子模块

然后就出现了新的界面。

新建子模块界面?

我相信你第一眼一定能看到左边这个显眼的Maven图标。

眼见不一定为实

但是,你真的觉得这个图标就是我们需要的吗?当然不是。

你会发现这些玩意完全就不是那回事。以前在各种教程里看到的IDEA的2017、2019版样式总觉得跟现在的2023版差别很大。

尤其是Archetype这一块,你会发现完全不知道写什么。哪怕这是一个下拉框,也完全看不懂每个选项都是些什么牛鬼蛇神。

当然,不知道是因为现在是SpringBoot的时代,有些SSM时代的遗老还是明白这玩意要怎么配的。

只可惜现在不再是把前端放在WEB-INF的时代了,也不可能再用jsp了。

新建子模块界面!

那么,2023版本的应该看什么?

细心的你一定在上面发现了一行小字:To create a general Maven modulego to the New Maven page。其中,New Maven是可以点击的,就像这样:

第一个大坑

所以,还是那句老话:

高端的快速开发框架二次开发,往往只需要低端的新建模块方法。

没什么花里胡哨的,点击New Module就完事。

我们在这个界面上填入所有的内容,就能够新建我们想要的模块了。我们以创建一个图集管理模块为例,加入一个ruoyi-img模块,就像下图所示:

这个加入模块就对味了

由于我在截图的时候已经添加完成了,所以会显示已存在。如果没有的话是不会显示的。

修改pom依赖

这个修改依赖就跟其他博客里面能够看到的都是类似的,首先需要修改根目录中的pom.xml文件,然后是ruoyi-admin子模块下的pom.xml文件,最后是ruoyi-img子模块下的pom.xml文件。如下图所示:

pom文件的修改

配置RuoYiApplication

你以为这里就结束了?并没有。

这里感谢Gitee用户Lionel.在新建模块后,前端访问接口404的issue中说明了问题:

最后的最后,我们需要额外在RuoYiApplication上加一个注解,让Spring Boot对所有的模块重新扫描一边,这样才能够完成新增模块的添加:

// 增加scanBasePackages
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }, scanBasePackages = { "com.ruoyi.*" })
public class RuoYiApplication
{
    public static void main(String[] args)
    {
        // System.setProperty("spring.devtools.restart.enabled", "false");
        SpringApplication.run(RuoYiApplication.class, args);
        System.out.println("(♥◠‿◠)ノ゙  若依启动成功   ლ(´ڡ`ლ)゙");
    }
}

到这里就可以了。

添加测试接口

由于我这边并没有想好需要添加什么模块,也没有想好需要增加什么业务逻辑实现图集的一些什么功能,所以我这里就直接简单粗暴的加一个com.ruoyi.img.controller包,并添加一个ImageController类,代码如下:

package com.ruoyi.img.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/image", method = RequestMethod.GET)
public class ImageController {
  @GetMapping("/test")
  public String test() {
    return "test";
  }
}

配置接口权限

哦对了,别忘了在com.ruoyi.framework.config下的SecurityConfig类中把权限关了,否则Spring Security会把你堵得死死的。

httpSecurity
  ... // 省略一堆代码
  .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
  // 在这里添加一行
  .antMatchers("/image/**").permitAll()
  // 除上面外的所有请求全部需要鉴权认证
  .anyRequest().authenticated()
  .and()
  .headers().frameOptions().disable();

当然,这个需要在完成开发后退回。

测试

启动RuoYiApplication,我们就能够利用Apifox请求到这个接口了。

然后利用Get方法请求http://localhost:8080/image/test,就能看到返回test了。

当然,Get方法还能够直接使用浏览器访问,在网址栏输入http://localhost:8080/image/test,按下回车就能够看到页面上写着test

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1639602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优质短视频内容进阶SOP课

本课程致力于提升短视频内容创作标准化操作流程(SOP)。学员将学习视频策划、拍摄技巧、剪辑方法等,打造高质量短视频内容。通过实例分析和实践演练,学员将掌握优质内容制作的关键步骤,提升影响力和吸引力,成…

Linux搭建mysql环境

搭建 MySQL 环境 1、使用 wget 下载安装包,下载到 opt 目录中 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2、安装 MySQL 公钥 rpm -i mysql57-community-release-el7-10.noarch.rpmrpm --import https://repo.mysql.com/RPM-GP…

ubuntu ros noetic 编译 ORB_SLAM2 过程记录

1. 连接 eigen库 sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen 2. opencvx 修改 CMakeList.txt 中的 find_package open cv版本 修改 include/orbExtracter.h 文件为&#xff1a; //#include <opencv2/opencv.hpp> #include<opencv2/imgproc/imgpro…

Vite proxy-rewrite 属性详解

在前端开发中&#xff0c;为了避免跨域问题&#xff0c;我们会在vite.config.ts 中配置如下问题 rewrite: 由于不了解Nginx的知识&#xff0c;这个属性一直困扰着我&#xff0c;这个重写有啥用&#xff0c;加和不加有啥影响 server: {host: 0.0.0.0,proxy: {/api: {target: ht…

为什么3D模型材质是透明的?---模大狮模型网

在进行3D建模和渲染过程中&#xff0c;正确的材质设置是保证模型外观逼真和渲染效果良好的关键之一。然而&#xff0c;有时您可能会遇到3D模型材质变成透明的情况&#xff0c;这可能会导致意想不到的效果和渲染结果。本文将探讨一些可能导致3D模型材质变成透明的原因&#xff0…

【Java基础】Maven安装与配置

1. 前言 Maven是一个基于 Java 的项目管理工具&#xff0c;因此最基本的要求是在计算机上安装 JDK。 Maven 对系统要求如下表&#xff1a; 2. Java环境设置 在 Java 官方网站 下载并安装 JDK 7.0 及以上版本&#xff0c;如果您不了解 JDK 的安装和配置&#xff0c;请参考&…

《QT实用小工具·五十二》文本或窗口炫酷有趣的滚动条——果冻条

1、概述 源码放在文章末尾 该项目实现了文本或窗口纤细的滚动条——果冻条 一个可以像弓弦一样拉出来&#xff0c;并且来回弹动的普通滚动条。 思路为此&#xff0c;但发现实际效果更像条状果冻&#xff0c;并且略有谐音&#xff0c; 故&#xff0c;称之为——“果冻条”&am…

安装部署大语言模型 | 通义千问

下载安装 进入ollama的仓库下载 「 qwen 7b 」 libraryGet up and running with large language models.https://ollama.com/library查找阿里的 「 qwen 」 根据自己的电脑配置情况&#xff0c;选择合适的模型 总体来说&#xff0c;模型是越大&#xff0c;效果越好&#xff0c…

【热门话题】Stylus 入门与实践详解

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Stylus 入门与实践详解引言一、Stylus 简介1.1 什么是 Stylus&#xff1f;1.2 S…

LPO vs CPO:谁是数据中心光互连的领跑者?

在不断扩大的数据中心领域&#xff0c;速度和效率至关重要&#xff0c;光互连的主导地位之争已经到了关键时刻。激光相控振荡器&#xff08;LPO&#xff09;和相干相控振荡器&#xff08;CPO&#xff09;这两项强大的技术已成为彻底改变数据中心光互连竞赛的主要竞争者。本文深…

MVC和DDD的贫血和充血模型对比

文章目录 架构区别MVC三层架构DDD四层架构 贫血模型代码示例 充血模型代码示例 架构区别 MVC三层架构 MVC三层架构是软件工程中的一种设计模式&#xff0c;它将软件系统分为 模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Contro…

用户中心(终)

文章目录 Ant Design Pro&#xff08;Umi 框架&#xff09;ProComponents 高级表单待优化点 todo注册逻辑增加注册页面页面重定向问题注册页面 **获取用户的登录态****前端用户管理功能** Ant Design Pro&#xff08;Umi 框架&#xff09; app.tsx 项目全局入口文件&#xff0c…

Redis Zset的底层原理

Redis Zset的底层原理 ZSet也就是SortedSet&#xff0c;其中每一个元素都需要指定一个score值和member值&#xff1a; 可以根据score值排序后member必须唯一可以根据member查询分数 因此&#xff0c;zset底层数据结构必须满足键值存储、键必须唯一、可排序这几个需求。之前学…

Node.js -- MongoDB

文章目录 1. 相关介绍2. 核心概念3. 命令行交互3.1数据库命令3.2 集合命令3.3 文档命令 4. 数据库应用场景4.1 新增4.2 删除4.3 更新4.4 查询 5. 图形化工具Robo 3T 1. 相关介绍 一、简介 Mongodb是什么 MongoDB是一个基于分布式文件存储的数据库&#xff0c;官方地址https://…

jupyter notebook使用与本地位置设置

本地安装好Anaconda之后&#xff0c;自带的有Jupter notebook。 使用jupyter notebook 使用jupyter notebook时&#xff0c;可以直接打开或者搜索打开&#xff1a; 打开后&#xff0c;我们生成的或者编辑的一些文件&#xff0c;都可以看到&#xff0c;如下&#xff1a; j…

基于Spring Boot的心灵治愈交流平台设计与实现

基于Spring Boot的心灵治愈交流平台设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 系统功能界面图&#xff0c;在系统首页可以查看首页…

14.集合、常见的数据结构

集合 概念 Java中的集合就是一个容器&#xff0c;用来存放Java对象。 集合在存放对象的时候&#xff0c;不同的容器&#xff0c;存放的方法实现是不一样的&#xff0c; Java中将这些不同实现的容器&#xff0c;往上抽取就形成了Java的集合体系。 Java集合中的根接口&#x…

挑战一周完成Vue3项目Day4: 用户管理+角色管理+菜单管理+首页+暗黑模式/主题切换

一、用户管理 1.静态搭建 src/views/acl/user/index.vue <template><el-card style"height:80px;"><el-form :inline"true" class"form"><el-form-item label"用户名&#xff1a;"><el-input placehold…

Golang | Leetcode Golang题解之第64题最小路径和

题目&#xff1a; 题解&#xff1a; func minPathSum(grid [][]int) int {if len(grid) 0 || len(grid[0]) 0 {return 0}rows, columns : len(grid), len(grid[0])dp : make([][]int, rows)for i : 0; i < len(dp); i {dp[i] make([]int, columns)}dp[0][0] grid[0][0]…

vscode 插件 code settings sync(配置云端同步)

vscode 插件 code settings sync&#xff08;配置云端同步&#xff09; 电脑A和B&#xff0c;vscode配置都在A电脑上&#xff0c;此时你想要将A电脑的vscode配置同步到B电脑的vscode中 第一步&#xff1a;A电脑和B电脑都需要在VSCode中安装下图插件 code settings sync 第二步&…