一、RuoYi项目二次开发

RuoYi项目二次开发指南

本文主要对前后端分离的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

创建新模块开始二次开发

  1. 首先,在IDEA中创建新模块,设置名称、位置、父项为ruoyi;
    在这里插入图片描述
  2. 查看项目的总POM文件,可以看到已经有ruoyi-test模块;
    在这里插入图片描述
  3. 将新模块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的级别;数据源配置

  1. 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@
  1. application-dev.yml 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.kingbase8.Driver
        druid:
            master:
                url: 开发数据库路径
                username: xxx
                password: xxx
 		// ... ...
  1. application-prod.yml 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.kingbase8.Driver
        druid:
            master:
                url: 生产数据库路径
                username: xxx
                password: xxx
 		// ... ...
  1. 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>
  1. 总的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>
  1. 在对项目进行打包,由于生产环境不是默认环境,因此打包时命令行添加配置。若要打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

在这里插入图片描述

后续改进

  1. 集成mybatis-plus
  2. 适配金仓数据库
  3. 部署东方通服务器
  4. 集成数据加密方法

参考文章和网站链接:

RuoYi-Vue3 前端
RuoYi-Vue-Boot-2.x 后端
RuoYi-Vue的金仓数据库版本
RuoYi-Vue的多租户后台管理系统
集成mybatis-plus实现mybatis增强

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值