【RuoYi-SpringBoot3-Pro】:若依企业级增强版 —— 让开发更安全高效

一、项目简介

RuoYi-SpringBoot3-Pro[1] 是若依(RuoYi-Vue)的企业级增强版本。它不仅保留了若依的所有优秀特性,还针对企业实际需求新增了代码加密保护三级等保合规AI 能力集成低代码开发等多项高级功能。

核心特点:

技术栈:

二、核心新特性详解

2.1 代码加密保护 —— 守护你的核心资产

痛点: Java 代码容易被反编译,核心业务逻辑容易泄露。

解决方案: 集成 ClassFinal 字节码加密插件,对编译后的 class 文件进行深度加密。


    
    
    
  <!-- Maven 配置示例 -->
<plugin>

    <groupId>
com.gitee.lcm742320521</groupId>
    <artifactId>
classfinal-maven-plugin</artifactId>
    <configuration>

        <!-- 加密核心业务包 -->

        <packages>
com.ruoyi.biz</packages>
        <!-- 加密配置文件 -->

        <cfgfiles>
*.yml</cfgfiles>
        <!-- 设置密码保护 -->

        <password>
YourSecretPassword</password>
    </configuration>

</plugin>

使用效果:

2.2 三级等保支持 —— 满足合规要求

背景: 政府、金融等行业要求系统通过国家信息安全等级保护三级认证。

内置安全策略:

1. 密码更新周期


    
    
    
  # 系统参数配置
sys.account.passwordValidateDays:
 90
# 90天未更新密码强制修改

2. 登录失败锁定


    
    
    
  sys.account.tryLoginCount: 5-30
# 5次失败锁定30分钟

3. 初始密码强制修改

4. IP 黑名单


    
    
    
  sys.login.blackIPList: 192.168.1.*;10.0.0.0/8
# 支持通配符和网段匹配

这些配置通过系统参数表管理,无需重启服务即可生效

2.3 AI 能力集成 —— 让系统更智能

内置 OpenAI SDK,轻松为系统添加 AI 对话能力。

同步对话示例:


    
    
    
  // 创建客户端
OpenAIClient
 client = OpenAI.chatClient("your-api-key", 
    "https://api.openai.com/v1"
, null);

// 构建消息

List<AIMessage> messages = Arrays.asList(
    new
 AIMessage(AIRole.SYSTEM, "你是一个助手"),
    new
 AIMessage(AIRole.USER, "介绍一下 Spring Boot")
);

// 发送请求

String
 response = OpenAI.chat(client, 
    OpenAI.chatParams("gpt-3.5-turbo", messages));

流式对话(SSE):


    
    
    
  // 支持打字机效果,实时展示 AI 回复
return
 OpenAI.chatStream(client, params, new StreamContentListener() {
    @Override

    public
 void onContent(String content) {
        // 逐字输出

        System.out.print(content);
    }
});

兼容性: 支持所有兼容 OpenAI 协议的 API(如国内大模型)。

2.4 MyBatis-Plus —— 更强大的 ORM

从原生 MyBatis 升级到 MyBatis-Plus,开发效率提升明显。

对比差异:

功能MyBatisMyBatis-Plus
基础 CRUD需要手写 XML自动生成,无需编写
分页查询手动配置自动分页插件
查询语法XMLLambda 表达式(类型安全)
乐观锁手动实现注解即可
逻辑删除手动实现注解即可

代码示例:


    
    
    
  // 1. Mapper 继承 BaseMapper
public
 interface UserMapper extends BaseMapper<User> {
    // 无需任何代码,已拥有 CRUD 方法

}

// 2. 优雅的 Lambda 查询

List<User> users = userMapper.selectList(
    new
 LambdaQueryWrapper<User>()
        .eq(User::getStatus, "0")
        .like(User::getUserName, "admin")
        .orderByDesc(User::getCreateTime)
);

// 3. 分页查询

Page<User> page = new Page<>(1, 10);
userMapper.selectPage(page, wrapper);

2.5 Magic API —— 可视化接口开发

无需编译、即改即生效的接口开发平台。

核心特点:

访问地址: http://localhost:8087/magic/web

适用场景:

2.6 多数据库支持 —— 适配国产化需求

支持 5 种主流数据库,满足不同场景需求:

数据库版本应用场景
MySQL8.0+互联网应用、中小企业
PostgreSQL12+企业级应用、数据分析
达梦数据库DM8+国产化替代、政府项目
瀚高数据库6.2+金融行业、电信行业
高斯数据库GaussDB华为云、政企系统

切换数据库: 只需修改配置文件中的 spring.profiles.active 即可。


    
    
    
  spring:
  profiles:

    active:
 devmy  # devmy=MySQL, devpg=PostgreSQL, devdm=达梦...

2.7 多租户支持 —— SaaS 应用必备

基于字段级别的租户隔离方案。

工作原理:

配置示例:


    
    
    
  tenant:
  enable:
 true              # 启用多租户
  column:
 tenant_id         # 租户字段名
  ignoreTables:
             # 不隔离的表
    -
 sys_user
    -
 sys_role
  ignoreLoginNames:
         # 不隔离的用户(如超级管理员)
    -
 admin

三、与原版若依的对比

特性RuoYi-VueRuoYi-SpringBoot3-Pro
ORM 框架MyBatisMyBatis-Plus ⭐
代码加密ClassFinal 加密 ⭐
三级等保部分支持完整支持 ⭐
AI 能力OpenAI 集成 ⭐
低代码Magic API ⭐
数据库仅 MySQL多种数据库 ⭐
多租户✅ ⭐

四、快速开始

4.1 环境准备


    
    
    
  - JDK 17 或 JDK 21
- Maven 3.6+
- MySQL 5.7+ (或其他支持的数据库)
- Redis (用于缓存和会话管理)

4.2 三步启动

第一步:导入数据库


    
    
    
  mysql -u root -p < sql/ruoyi-mysql.sql
mysql -u root -p < sql/magic-api-mysql.sql
mysql -u root -p < sql/region-mysql.sql

第二步:修改配置


    
    
    
  # application.yml
spring:

  profiles:

    active:
 devmy  # 选择数据库配置

# application-devmy.yml

spring:

  datasource:

    url:
 jdbc:mysql://localhost:3306/ruoyi
    username:
 root
    password:
 your_password

第三步:启动服务


    
    
    
  # 编译打包
mvn clean package

# 运行服务

java -jar ruoyi-admin/target/ruoyi-admin.jar

访问系统:

4.3 启动前端

推荐使用 Element Plus 增强版前端:


    
    
    
  git clone https://github.com/undsky/RuoYi-SpringBoot3-ElementPlus.git
cd
 RuoYi-SpringBoot3-ElementPlus
npm install
npm run dev

# 访问:http://localhost:80

五、项目结构


    
    
    
  RuoYi-SpringBoot3-Pro
├── ruoyi-admin         # 管理后台(启动模块)
├── ruoyi-framework     # 框架核心(认证、缓存、配置等)
├── ruoyi-system        # 系统模块(用户、角色、菜单等)
├── ruoyi-common        # 通用模块(工具类、常量等)
├── ruoyi-biz          # ⭐ 业务模块(示例代码)
├── ruoyi-quartz       # 定时任务模块
├── ruoyi-generator    # 代码生成模块
└── sql                # 数据库脚本

核心模块说明:

六、实战技巧

6.1 代码生成器最佳实践

Pro 版本的代码生成器已针对 MyBatis-Plus 优化:

  1. 1. 在"代码生成"菜单中选择数据表
  2. 2. 点击"生成代码"下载压缩包
  3. 3. 解压后导入项目

生成的代码特点:

6.2 ClassFinal 加密注意事项


    
    
    
  <!-- 建议配置 -->
<configuration>

    <!-- ✅ 只加密业务模块 -->

    <packages>
com.ruoyi.biz</packages>
    
    <!-- ❌ 不要加密框架代码 -->

    <excludes>
org.springframework,com.baomidou</excludes>
    
    <!-- ✅ 使用复杂密码 -->

    <password>
Secure@Password#2024!</password>
</configuration>

重要提示:

6.3 等保安全策略配置建议

根据不同安全级别配置:

一般企业:


    
    
    
  密码周期:180 天
失败锁定:5-30(5次失败锁定30分钟)
初始密码:开启强制修改

高安全要求(政企):


    
    
    
  密码周期:90 天
失败锁定:3-60(3次失败锁定1小时)
初始密码:开启强制修改
IP 黑名单:根据实际情况配置

八、总结

RuoYi-SpringBoot3-Pro 是一个面向企业级应用的快速开发框架,它在若依的基础上做了大量增强:

核心优势:

  1. 1. 安全可靠:代码加密 + 三级等保,满足政企要求
  2. 2. 技术先进:Spring Boot 3 + MyBatis-Plus,开发效率高
  3. 3. 功能丰富:AI 集成 + 低代码 + 多租户,应对复杂场景
  4. 4. 数据库灵活:支持多种数据库,满足国产化需求
  5. 5. 完全开源:MIT 协议,商业项目免费使用

引用链接

[1] RuoYi-SpringBoot3-Pro: https://github.com/undsky/RuoYi-SpringBoot3-Pro
[2] RuoYi-SpringBoot3-Pro 文档: https://www.undsky.com/blog/?category=RuoYi-SpringBoot3-Pro#