本文主要对前后端分离的RuoYi-Vue3管理系统进行二次开发,包括Ruo-Yi项目的模块结构、配置、如何创建新的模块进行二次开发等。
Ruo-Yi项目的模块结构
若依项目主要包括六个模块:
ruoyi-admin:web服务入口,实现RuoYi项目的接口ruoyi-framework:核心框架,实现项目的基础配置、数据库配置、过滤器、拦截器、安全框架、AOP等功能ruoyi-common:通用工具,实现在大多数项目中都能使用的公共方法ruoyi-system:系统模块,实现RuoYi项目的业务逻辑和数据访问ruoyi-quartz:定时任务ruoyi-generator:代码生成
在项目的总POM文件可以找到如下标签,表示整个项目可以用到哪些模块,方便后续模块之间互相引用。
<modules>
<module>ruoyi-admin</module>
<module>ruoyi-framework</module>
<module>ruoyi-system</module>
<module>ruoyi-quartz</module>
<module>ruoyi-generator</module>
<module>ruoyi-common</module>
</modules>
各个模块间的父子关系通过查找POM文件下的<dependencies> 标签决定,比如ruoyi-admin模块的POM文件有如下引用:
<!-- 核心模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
<!-- 定时任务-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-quartz</artifactId>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId>
</dependency>
根据六个模块的引用关系,可以得到总的项目引用关系:
ruoyi-admin
└─ ruoyi-framework
└─ ruoyi-system
└─ ruoyi-common
└─ ruoyi-quartz
└─ ruoyi-common
└─ ruoyi-generator
└─ ruoyi-common
创建新模块开始二次开发
- 首先,在IDEA中创建新模块,设置名称、位置、父项为ruoyi;

- 查看项目的总POM文件,可以看到已经有
ruoyi-test模块;

- 将新模块ruoyi-test的引用关系添加进去,在ruoyi-admin的POM文件中添加新模块依赖,在ruoyi-test的POM文件中添加ruoyi-framework依赖;


此时,可以在ruoyi-test新模块中添加新的业务代码,实现二次开发。

模块和第三方库的版本管理
为了方便对模块和库的版本号进行管理,在项目的总POM文件中采用<properties>标签来管理版本号
<properties>
<ruoyi.version>3.9.0</ruoyi.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<spring-boot.version>2.5.15</spring-boot.version>
... ...
</properties>

在项目的总POM文件中通过<dependencyManagement>依赖声明标签来管理项目会用到的依赖
<dependencyManagement>
<dependencies>
... ...
<!-- 覆盖SpringFramework的依赖配置-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring-framework.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
<version>${ruoyi.version}</version>
</dependency>
... ...
</dependencies>
</dependencyManagement>

在各个模块中使用依赖的模块或第三方库时,就不需要填入版本号,比如ruoyi-admin模块的POM文件

因此要引入新的模块只需要分三步:在项目总POM文件中添加版本号;添加依赖;在对应模块的POM中引入依赖
项目开发和生产环境的配置
在项目启动时,我们使用的是一个配置文件,就是admin模块的
application.yml文件,但是有时候在生产环境下,需要手动修改部分配置,因此为了区分两个不同的环境,添加开发环境配置application-dev.yml和生产环境配置application-prod.yml,并且配合POM文件实现。
在不同环境下,不同的配置包括:文件的保存位置;打log的级别;数据源配置
- application.yml添加的@变量
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.9.0
# 版权年份
copyrightYear: 2025
# 文件路径
profile: @ruoyi.profile@
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: char
# 日志配置
logging:
level:
com.ruoyi: @logging.level@
org.springframework: warn
org.mybatis.spring.mapper: error
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: @profiles.active@
- application-dev.yml 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.kingbase8.Driver
druid:
master:
url: 开发数据库路径
username: xxx
password: xxx
// ... ...
- application-prod.yml 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.kingbase8.Driver
druid:
master:
url: 生产数据库路径
username: xxx
password: xxx
// ... ...
- ruoyi-admin项目的pom文件:在
build标签添加<resources>
<build>
<plugins>
<plugin ...>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering> <!-- 开启过滤,替换 @xxx@ 变量 -->
</resource>
</resources>
</build>
- 总的pom文件:添加
<profiles>,添加不同环境,设置默认环境为开发环境dev,在生产环境中为了实现信创化部署,添加了依赖以排除内置tomcat,否则可以去掉。
<profiles>
<profile>
<id>local</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
<logging.level>info</logging.level>
</properties>
</profile>
<profile>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<id>dev</id>
<properties>
<ruoyi.profile>F:/NBGasExam/uploadPath</ruoyi.profile>
<profiles.active>dev</profiles.active>
<logging.level>info</logging.level>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<ruoyi.profile>/home/NBGasExam/uploadPath</ruoyi.profile>
<profiles.active>prod</profiles.active>
<logging.level>warn</logging.level>
</properties>
<dependencies>
<!-- 多模块排除内置tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
</profiles>
- 在对项目进行打包,由于生产环境不是默认环境,因此打包时命令行添加配置。若要打war包则修改
ruoyi-admin的pom文件即可。
@echo off
echo.
echo 将Web项目打包为war/jar项目。
echo.
%~d0
cd %~dp0
cd ..
call mvn clean package -Pprod -Dmaven.test.skip=true
pause

后续改进
- 集成mybatis-plus
- 适配金仓数据库
- 部署东方通服务器
- 集成数据加密方法
参考文章和网站链接:
RuoYi-Vue3 前端
RuoYi-Vue-Boot-2.x 后端
RuoYi-Vue的金仓数据库版本
RuoYi-Vue的多租户后台管理系统
集成mybatis-plus实现mybatis增强
RuoYi项目二次开发指南
5万+

被折叠的 条评论
为什么被折叠?



