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

文章目录

  • 前言
  • 添加子模块
    • 新建子模块
    • 新建子模块界面?
    • 新建子模块界面!
  • 修改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.rhkb.cn/news/319988.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThingsBoard通知中心讲解

1、概述 2、案例 2.1、通知发送方式 2.2、发送通知 3、Templates模板 3.1、Add new template添加新模板 1、概述 ThingsBoard 通知中心是一个用于在平台内发送、管理和自动化通知的综合工具。它允许多种通知方法,包括网络、电子邮件、移动应用程序、短信以及与 …

基于SpringBoot+Vue点餐系统设计和实现(源码+LW+部署讲解)

🌹作者简介:✌全网粉丝10W,前大厂员工,多篇互联网电商推荐系统专利,现有多家创业公司,致力于建站、运营、SEO、网赚等赛道。也是csdn特邀作者、博客专家、Java领域优质创作者,博客之星、掘金/华…

go mod

常用命令 初始化模块 go mod init 模块名下载 go.mod 文件中指明的所有依赖 go mod download github.com/gin-gonic/ginv1.9.(依赖路径)依赖对其(使引用的都是所依赖的) go mod tidy编辑go.mod go mod edit go mod edit -require"github.com/g…

哪个品牌的骨传导耳机好用?精选五大高性能热门骨传导耳机款式推荐!

我作为一名热衷于音乐的数码博主,在选购产品前也习惯于先浏览各种榜单。最近,我发现关于骨传导耳机的讨论热度极高,有人认为骨传导耳机是非常值得入手的新型蓝牙耳机,也有人认为骨传导耳机只是智商税的产品。经过深入调查后&#…

【计算机网络】FTP站点配置搭建教程以及相关问题解决方案(超详细)

文章目录 1、安装Window Server 20082、搭建FTP环境(1)安装FTP服务器(2)配置FTP服务器(3)测试FTP连接 3、遇到的问题以及解决方案(1)Windows无法访问此文件夹(2&#xff…

Android Ant编译环境配置(Win)

1、 载ant包: 2、设置环境变量: 3、检查是否设置成功及版本 4、执行命令: android update project -p . -n “projectname”(例如:android update project --target 1 -p . -n “Couplet”)(只输入红色部分也是可以的…

AC/DC电源模块的高效能源管理与效率优化

BOSHIDA AC/DC电源模块的高效能源管理与效率优化 AC/DC电源模块是一种常见的电源转换装置,用于将交流电转换为直流电。它被广泛应用于各种电子设备中,如计算机、通信设备、工业自动化设备等。在现代化的科技社会中,高效能源管理和效率优化变…

swift微调多模态大语言模型

微调训练数据集指定方式的问题请教 Issue #813 modelscope/swift GitHubQwen1.5微调训练脚本中,我用到了--dataset new_data.jsonl 这个选项, 可以训练成功,但我看文档有提到--custom_train_dataset_path这个选项,这两个有什么…

​可视化大屏C位图:3D模型,可视化大屏的画龙点睛之处

Hello,我是大千UI工场,本期可视化大屏的焦点图(C位)分享将图表作为焦点图的情形,欢迎友友们关注、评论,如果有订单可私信。 3D模型在可视化大屏中有很大的价值,以下是一些相关的优点&#xff1a…

基于springboot实现在线考试系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线考试系统演示 摘要 使用旧方法对在线考试系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在在线考试系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及…

leetcode 1235

leetcode 1235 代码 class Solution { public:int jobScheduling(vector<int>& startTime, vector<int>& endTime, vector<int>& profit) {int n startTime.size();vector<vector<int>> jobs(n);for(int i0; i<n; i){jobs[i] …

JuiceFS v1.2-beta1,Gateway 升级,多用户场景权限管理更灵活

JuiceFS v1.2-beta1 今天正式发布。在这个版本中&#xff0c;除了进行了大量使用体验优化和 bug 修复外&#xff0c;新增三个特性&#xff1a; Gateway 功能扩展&#xff1a;新增了“身份和访问管理&#xff08;Identity and Access Management&#xff0c;IAM&#xff09;” 与…

JAVA面试专题-框架篇(Spring+Mybatis)

Spring Spring框架中的单例bean是线程安全的吗&#xff1f; bean上面可以加入注解Scope&#xff0c;如果是singleton&#xff08;默认&#xff09;&#xff0c;意味着bean在每个spring IOC容器中只有一个实例&#xff1b;如果是prototype&#xff0c;说明一个bean定义可以有多…

Centos上通过Docker安装ES管理端kibana

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Elasticsearch 是一…

《QT实用小工具·五十六》自适应界面变化的控件

1、概述 源码放在文章末尾 该项目实现了网格显示多张带文字的图片在界面中自适应布局 特点 跟随窗口大小变换位置&#xff0c;并带移动动画 响应鼠标事件&#xff0c;图片缩放动画 点击水波纹动画 项目demo演示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #i…

Electron+Vue3+Vite+ElectronForge整合 - 一键启动两个服务 一键打包两个服务

说明 本文介绍一下 Electron Vue3 Vite Electron Forge 的高级整合操作。vue3 : 使用 TS 的语法开发&#xff1b; Electron : 使用 JS 的语法开发。本文将从项目初始化开始&#xff0c;一步一步的完成项目的启动、打包全流程的介绍。实现的效果是 &#xff1a; 1、一个正常…

CRE-LLM:告别复杂特征工程,直接关系抽取

CRE-LLM&#xff1a;告别复杂特征工程&#xff0c;直接关系抽取 提出背景CRE-LLM 宏观分析CRE-LLM 微观分析1. 构建指令集&#xff08;Instruction Design&#xff09;2. 高效微调大型语言模型&#xff08;Efficient Fine-Tuning on LLMs&#xff09;3. 方法讨论&#xff08;Di…

Leetcode—706. 设计哈希映射【简单】(constexpr)

2024每日刷题&#xff08;127&#xff09; Leetcode—706. 设计哈希映射 数组实现代码 class MyHashMap { public:MyHashMap() {memset(arr, -1, sizeof(arr));}void put(int key, int value) {arr[key] value;}int get(int key) {if(arr[key] -1) {return -1;} return arr…

【在线OJ】Vue在线OJ项目

一、主页 二、题库 三、在线编译器 四、比赛 五、搜索 六、个人主页

保研面试408复习 2——操作系统、计网

文章目录 1、操作系统一、进程、线程的概念以及区别&#xff1f;二、进程间的通信方式&#xff1f; 2、计算机网络一、香农准则二、协议的三要素1. 语法2. 语义3. 时序 标记文字记忆&#xff0c;加粗文字注意&#xff0c;普通文字理解。 1、操作系统 一、进程、线程的概念以及…