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

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

一、项目简介

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

核心特点:

  • ✅ 完全开源免费,基于 MIT 协议
  • ✅ 100% 保留若依原有功能
  • ✅ 采用最新技术栈:Spring Boot 3 + MyBatis-Plus
  • ✅ 支持多种主流数据库

技术栈:

  • 后端:Spring Boot 3.3.5 + MyBatis-Plus + Spring Security
  • 前端:Vue 3 + Element Plus / Vant
  • 缓存:Redis
  • 数据库:MySQL / PostgreSQL / 达梦 / 瀚高 / 高斯

二、核心新特性详解

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

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

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

xml 复制代码
<!-- 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>

使用效果:

  • 反编译后看到的全是乱码,无法还原源代码
  • 运行时需要提供密码:java -jar app.jar -pwd=YourPassword
  • 适用于商业项目交付、核心算法保护等场景

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

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

内置安全策略:

1. 密码更新周期

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

2. 登录失败锁定

yaml 复制代码
sys.account.tryLoginCount: 5-30
# 5次失败锁定30分钟

3. 初始密码强制修改

  • 新用户首次登录必须修改初始密码
  • 符合等保要求的密码安全策略

4. IP 黑名单

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

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

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

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

同步对话示例:

java 复制代码
// 创建客户端
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):

java 复制代码
// 支持打字机效果,实时展示 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,开发效率提升明显。

对比差异:

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

代码示例:

java 复制代码
// 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 ------ 可视化接口开发

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

核心特点:

  • 🎨 Web 可视化界面,像写 SQL 一样开发接口
  • ⚡ 修改立即生效,无需重启服务
  • 💾 接口脚本存储在数据库,支持版本管理
  • 🔄 支持接口测试、历史记录、回滚等功能

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

适用场景:

  • 快速开发临时接口
  • 数据统计报表接口
  • 简单的 CRUD 接口
  • 配合代码生成器实现双管齐下

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

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

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

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

yaml 复制代码
spring:
  profiles:
    active: devmy  # devmy=MySQL, devpg=PostgreSQL, devdm=达梦...

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

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

工作原理:

  • 在需要隔离的表中添加 tenant_id 字段
  • 框架自动在 SQL 中注入租户条件
  • 业务代码完全无感知

配置示例:

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

三、与原版若依的对比

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

四、快速开始

4.1 环境准备

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

4.2 三步启动

第一步:导入数据库

bash 复制代码
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

第二步:修改配置

yaml 复制代码
# application.yml
spring:
  profiles:
    active: devmy  # 选择数据库配置

# application-devmy.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/ruoyi
    username: root
    password: your_password

第三步:启动服务

bash 复制代码
# 编译打包
mvn clean package

# 运行服务
java -jar ruoyi-admin/target/ruoyi-admin.jar

访问系统:

  • 后端接口:http://localhost:8087
  • Magic API:http://localhost:8087/magic/web
  • 默认账号:admin / jyx_692483

4.3 启动前端

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

bash 复制代码
git clone https://github.com/undsky/RuoYi-SpringBoot3-ElementPlus.git
cd RuoYi-SpringBoot3-ElementPlus
npm install
npm run dev

# 访问:http://localhost:80

五、项目结构

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

核心模块说明:

  • ruoyi-admin:整合所有模块,作为启动入口
  • ruoyi-biz:新增的业务模块,提供标准化开发示例
  • ruoyi-framework:包含 Spring Security、Redis、AI 工具等核心功能
  • ruoyi-common:包含 ClassFinal 加密、等保策略等通用功能

六、实战技巧

6.1 代码生成器最佳实践

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

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

生成的代码特点:

  • Mapper 自动继承 BaseMapper<T>
  • 实体类自动添加 @TableName@TableId 注解
  • Service 层支持 Lambda 查询
  • 自适应当前使用的数据库

6.2 ClassFinal 加密注意事项

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

相关推荐
踏浪无痕1 小时前
准备手写Simple Raft(四):日志终于能"生效"了
分布式·后端
程序员西西1 小时前
SpringBoot 隐式参数注入:告别重复代码,让 Controller 更优雅
java·后端
嘻哈baby1 小时前
Ansible自动化运维:从入门到批量管理100台服务器
后端
用户345848285051 小时前
dict.fromkeys()和OrderedDict.fromkeys()的底层实现原理是什么?
后端
Cache技术分享1 小时前
258. Java 集合 - 深入探究 NavigableMap:新增方法助力高效数据处理
前端·后端
做cv的小昊1 小时前
在NanoPC-T6开发板上通过USB串口通信实现光源控制功能
java·后端·嵌入式硬件·边缘计算·安卓·信息与通信·开发
用户69371750013841 小时前
21.Kotlin 接口:接口 (Interface):抽象方法、属性与默认实现
android·后端·kotlin
溪饱鱼1 小时前
主动与被动AI交互范式
前端·后端·aigc
写代码的皮筏艇1 小时前
Sequelize 详细指南
前端·后端