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

news/2024/5/17 18:22:19

文章目录

  • 前言
  • 添加子模块
    • 新建子模块
    • 新建子模块界面?
    • 新建子模块界面!
  • 修改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.mrgr.cn/p/26041862

相关文章

Unity SteamVR入门

概述 VR项目现在在当前已经是非常热门的技术,可以给玩家身临其境的感觉,接下来让我们学习这部分的内容吧! SteamVR Input SteamVR绑定流程,在Windows窗口的点击SteamVR-input,图1,在这里可以选择你需要绑定…

Themis新篇章:老牌衍生品协议登陆Blast L2,探索全新经济模型

本文将深入分析 Themis 的最新经济模型,探讨其核心概念和机制、优势与创新之处、风险与挑战。 一、引言 随着区块链技术的不断发展,DeFi 衍生品项目逐渐成为市场的焦点。而用户体验的革新,进一步的金融创新,去中心化治理方案的优…

C语言/数据结构——每日一题(反转链表)

一.前言 大家好!今天又是每日一题环节。今天我为大家分享了一道单链表题——反转链表。 废话不多说,让我们直接进入正题吧。 二.正文 1.1题目信息 这是一道leetCode上面的一道题:https://leetcode.cn/problems/reverse-linked-list 1.2解…

2024-05-02 通达信指标 大盘涨跌家数

X_1:="999999$ADVANCE";X_2:="999999$DECLINE";X_3:="399107$ADVANCE";X_4:="399107$DECLINE";总家数:X_1+X_2+X_3+X_4+"880005$LOW",NODRAW;涨家数:X_1+X_3,NODRAW;跌家数:X_2+X_4,NODRAW;差数:涨家数-跌家数,NODRAW;涨占比…

2024-05-01 通达信指标 获利比例

平均成本线:COST(50),COLORYELLOW,NODRAW;三十周成本:LWINNER(150,C)COLORYELLOW;获利比例:WINNER(C)*100,COLORGREEN; DRAWLINE(O,90,O,90,1),COLORWHITE;DRAWLINE(O,70,O,70,1),COLORWHITE;

量子城域网建设设备系列(二):量子密钥管系统(KMS)

在上文介绍光量子交换机的文章中我们提到,量子保密通信网络的通道切换是由量子密钥管理系统(Key Management System,KMS)给光量子交换机下发信道切换指令,实现整个网络中任意两对量子密钥分发终端的量子信道互联互通&a…

二.Django项目之电商购物商城 -- 校验用户输入密码是否合法

Django项目之电商购物商城 – 校验用户输入密码是否合法 需要开发文档和前端资料的可私聊 一. 创建用户逻辑操作 1. 创建用户app – users python manage.py startapp users2.注册app users.apps.UsersConfig,3. 创建视图 from django.shortcuts import render from djan…

GPT是什么?直观解释Transformer | 深度学习第5章 【3Blue1Brown 官方双语】

【官方双语】GPT是什么?直观解释Transformer | 深度学习第5章 0:00 - 预测,采样,重复:预训练/生成式/Transformer模型 3:03 - Transformer 的内部结构 6:36 - 本期总述 7:20 - 深度学习的大框架 12:27 - GPT的第一层:…

【GitHub】github学生认证,在vscode中使用copilot的教程

github学生认证并使用copilot教程 写在最前面一.注册github账号1.1、注册1.2、完善你的profile 二、Github 学生认证注意事项:不完善的说明 三、Copilot四、在 Visual Studio Code 中安装 GitHub Copilot 扩展4.1 安装 Copilot 插件4.2 配置 Copilot 插件&#xff0…

Nacos 安全零信任实践

作者:柳遵飞 Nacos 作为配置中心经常存储一些敏感信息,但是由于误用导致安全风险,最常见的主要是以下两个问题: 1)Nacos 暴露公网可以吗?不可以,因为 Nacos 定位是注册配置中心,是…

中间件之异步通讯组件RabbitMQ入门

一、概述 微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用…

五大开放式耳机推荐,选对耳机让运动更带感!

看似精彩的户外运动经历背后,其实是枯燥的体能运动和训练,以及独自长途和长时间旅行伴随的孤独感,而排解这些不良情绪的最佳方式就是音乐。如果你希望在运动、舒适、安全和音质之间获得一个最佳平衡,那相比入耳式耳机,…

进迭时空宣布开源RISC-V芯片的AI核心技术

仟江水商业电讯(4月29日 北京 委托发布)4月29日,在“创芯生生不息——进迭时空2024年度产品发布会”上,进迭时空CEO、创始人,陈志坚博士宣布将开源进迭时空在自研RISC-V AI CPU上的核心技术,包括AI扩展指令…

iOS 实现视图遮罩效果

有时候,我们会遇到这种需求,只讲视图的某个部分展示出来 这时候,我们可以通过设置该视图layer.mask layerb来实现,需要注意的是,这里的layerb必须要设置backgroundColor,渐变layer有colors,否则达不到效果…

redis ZRANGE 使用最详细文档

环境: redis_version:7.2.2 本文参考 redis 官方文档1 语法 ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]参数含义key是有序集合的键名start stop在不同语境下,可用值不一样BYSCORE | BYLEX按照分数查询 | 相…

Momentum Contrast (MoCo) for Unsupervised Visual Representation Learning

1 Introduction 1.1 Instance discrimination (样本判别) 制定了一种划分正样本和负样本的规则 1.2 InfoNCE Loss 1.3 Momentum 动量在数学上可以理解为是一种指数移动平均(Exponential Moving Average) \(m\)为动量系数,目的是为了 \(Y_t\) 不仅仅依赖于当前时刻的输入 \(X_t…

2.顺序表_链表(附练习)

目录 1.线性表 2.顺序表 2.1概念及结构 2.2 接口实现 2.3 顺序表的问题及思考 3.链表 3.1 链表的概念及结构 3.2 链表的分类 3.3 链表的实现 3.4 链表面试题 3.5 双向链表的实现 4.顺序表和链表的区别 1.线性表 线性表(linear list)是n个具…

OPPO A72/A55/K7X/A53真我Q3S等手机ROOT刷机后广电卡没信号不读卡解决办法

目前运营商除了移动联通电信以外,还存在1个中国广电,广电属于第四大运营商,由于广电起步较晚,对于手机频段要求也自然不一样,导致目前市面上部分手机出厂没有信号或者不读卡等问题,特别在手机被用户自行刷机…

前端开发攻略---用原生JS在网页中也能实现语音识别

1、语音识别的过程 语音识别涉及三个过程:首先,需要设备的麦克风接收这段语音;其次,语音识别服务器会根据一系列语法 (基本上,语法是你希望在具体的应用中能够识别出来的词汇) 来检查这段语音;最后&#xf…

Django后台项目开发实战一

开发环境使用 Anaconda, IDE 使用 pycharm 第一阶段 创建 Django 项目 在 Anaconda Prompt 中逐步输入下面的命令(之后的所有命令都在这个) 首先创建一个虚拟环境,名称自拟,python 版本我这里使用 3.9.18 关于 python 版本和…