[技术调研/Java/应用开发框架] 若依(RuoYi)多版本架构形态的对比:单体、前后端分离、微服务、移动端全系解读

0 序

调研背景

  • 这几年包括现在,经历的不少Java项目都在使用若依框架,但若依实际上是有多个不同架构形态的框架的,为此,抽闲暇时间对比一二。

  • 调研日期:2026-11-03 | 开源协议:MIT | 作者:若依官方团队(y_project)


核心结论:若依(RuoYi)多版本架构形态的横向对比(必读)

  • 若依不是"一个项目",而是一套的同源、多形态的快速开发框架家族。四个官方大版本解决的是不同架构阶段的问题,前端界面和内置功能高度一致(同一套权限管理业务),差异集中在后端架构形态:
版本 架构形态 定位 适用规模
RuoYi(经典版) 单体 + 服务端渲染(SSR) 最简单、零依赖,后端渲染页面 小型 / 传统项目 / 学习入门
RuoYi-Vue 单体 + 前后端分离 最主流、最常用,绝大多数人用的版本 中小型项目
RuoYi-Cloud 分布式微服务 微服务化改造,服务治理完整 中大型 / 高并发企业级
RuoYi-App 纯移动端前端 配套移动端(APP/小程序/H5),对接上面两个后端 移动端配套

选型口诀:没有微服务需求就别上 Cloud(运维成本高);没有移动端需求就别上 App;绝大多数业务 RuoYi-Vue 就够。RuoYi-Vue 目前是官方主推、社区资料最丰富的版本。

flowchart TD A[若依 RuoYi 框架家族] --> B[RuoYi 经典版<br/>单体+Thymeleaf 服务端渲染] A --> C[RuoYi-Vue<br/>单体+前后端分离 ★最主流] A --> D[RuoYi-Cloud<br/>微服务+SpringCloudAlibaba] A --> E[RuoYi-App<br/>uniapp 移动端] C -->|前端| C1[RuoYi-Vue2 / Vue3 / Vue3-TS] D -->|前端| D1[RuoYi-Cloud-Vue2 / Vue3 / Vue3-TS] E -->|对接后端| C E -->|对接后端| D C -->|社区衍生| F[RuoYi-Vue-Plus<br/>MybatisPlus+Sa-Token] D -->|社区衍生| G[RuoYi-Pro / yudao<br/>Flowable+多租户+商城] B -.->|SpringBoot 2/3/4 分支| B1 C -.->|SpringBoot 2/3/4 分支| C2 D -.->|SpringBoot 2/3/4 分支| D2

1 概述

1.1 产品介绍

若依(RuoYi)是一套全部开源、可免费商用(含个人)的 Java 快速开发平台,是国内最流行的后台管理/权限管理脚手架之一。

  • 产品定位:企业级 Web 快速开发平台,开箱即用,用于快速搭建后台管理系统、权限系统
  • 诞生背景:作者(y_project / 若依)表示"看了很多优秀的开源项目但没有合适的",于是自己写了一套后台系统。名字取自作者女儿(寓意"你若不离不弃,我必生死相依")
  • 解决的核心问题:后台管理系统重复建设问题——RBAC 权限、部门/用户/角色管理、日志、代码生成、定时任务等基础能力重复造轮子;本框架把这些做成通用内置模块 + 一键代码生成器,让开发者专注业务
  • URLs:

1.2 发展历程

时间 里程碑
2018 年前后 经典版 RuoYi 诞生(SpringBoot + Shiro + Thymeleaf)
2019 年 推出 RuoYi-Vue(前后端分离)与 RuoYi-Cloud(微服务版)
2020 年 推出 RuoYi-App(uniapp 移动端)
2022–2026 全面支持 SpringBoot 2.x/3.x/4.x 多分支并行维护;前端推出 Vue2/Vue3/TS 多版本
2026 现状 master 默认分支升级到 Spring Boot 4.x(JDK 17+);经典版 v4.8.3、Vue版 v3.9.2、Cloud版 v3.6.8、App版 v1.2.0

1.3 官方四大版本速览(必读)

① RuoYi(经典版)—— 单体 + 服务端渲染

  • 定位:轻量级、零重度依赖的快速开发框架
  • 后端:Spring Boot + Apache Shiro + MyBatis + Quartz + Druid
  • 前端:Thymeleaf(服务端模板)+ Bootstrap(H+后台主题),前后端一体,页面由后端渲染
  • 特点:技术门槛最低,"直接运行即可用",前后端不分离、由后端渲染页面
  • 当前版本:v4.8.3(Gitee Star 48.9K,Fork 27.3K,获 GVP 最有价值开源项目奖)

② RuoYi-Vue —— 单体 + 前后端分离(★ 最主流)

  • 定位:前后端分离的权限管理系统,官方主推、社区最活跃、资料最多的版本
  • 后端:Spring Boot + Spring Security + JWT + MyBatis + Redis + Quartz + Druid
  • 前端:Vue + Element(提供 Vue2/Vue3/TS 三套)
  • 认证:基于 JWT 的 Token 认证,支持多终端(Web、App、小程序)无缝接入
  • 当前版本:v3.9.2(Gitee Star 43.3K,Fork 34.3K)

③ RuoYi-Cloud —— 分布式微服务

  • 定位:基于 Spring Cloud & Alibaba 的分布式微服务架构权限管理系统
  • 后端:Spring Boot + Spring Cloud Alibaba(Nacos 注册/配置中心 + Sentinel 流量控制 + Seata 分布式事务)+ Redis
  • 前端:沿用 RuoYi-Vue 前端(Vue2/Vue3/TS)
  • 模块拆分:gateway(网关)/ auth(认证)/ system / gen / job / file / monitor 等独立服务
  • 当前版本:v3.6.8(Gitee Star 20.6K,Fork 17.1K)

④ RuoYi-App —— 移动端框架

  • 定位:若依的移动端解决方案,基于 uniapp + uni-ui,一份代码多端适配(APP、微信小程序、支付宝小程序、H5)
  • 对接:完美对接 RuoYi-Vue 和 RuoYi-Cloud 两个后端
  • 技术栈:uniapp + uni-ui 1.4.x + color-ui 2.1.x(运行环境 HBuilder X)
  • 注意:它不是后端版本,而是纯移动端前端,必须搭配后端使用
  • 当前版本:v1.2.0(Gitee Star 7.8K,Fork 6.7K;提供 Vue2/Vue3 两个前端变体)

1.4 主要功能(四大版本通用,约 18 项内置模块)

  1. 用户管理:系统操作者配置
  2. 部门管理:组织机构树,支持数据权限
  3. 岗位管理:用户所属职务
  4. 菜单管理:菜单、操作权限、按钮权限标识
  5. 角色管理:菜单权限分配 + 按机构数据范围权限划分
  6. 字典管理:固定数据维护
  7. 参数管理:动态配置常用参数
  8. 通知公告:公告信息发布维护
  9. 操作日志 / 登录日志:正常与异常操作记录、登录日志
  10. 在线用户:活跃用户状态监控
  11. 定时任务:在线任务调度 + 执行结果日志(Quartz)
  12. 代码生成:一键生成前后端代码(java/html/xml/sql),支持 CRUD 下载
  13. 系统接口:自动生成 API 接口文档(Swagger)
  14. 服务监控 / 缓存监控:CPU、内存、磁盘、堆栈、缓存信息监控
  15. 在线构建器:拖拽表单元素生成 HTML 代码
  16. 连接池监视:数据库连接池状态 + SQL 性能分析

1.5 核心优势(必读)

  • 完全开源免费,MIT 协议,个人及企业可免费商用、无需授权
  • 开箱即用,一键代码生成器大幅降低重复 CRUD 开发量
  • 体系完整:同一套权限业务覆盖单体/分离/微服务/移动端四种形态,学习一次全系复用
  • 技术栈主流:SpringBoot + Vue + Element,招人/维护成本低
  • 生态活跃:官方多分支并行维护(SpringBoot 2/3/4 + Vue2/3/TS),社区衍生版本丰富

1.6 主要短板(必读)

  • 代码生成器生成的代码质量一般,偏 CRUD 样板,复杂业务仍需手写
  • 默认安全配置需注意:默认账号 admin/admin123,上线必须改;历史版本有若干已披露漏洞(见 FAQ)
  • 社区版本分化:官方版功能相对"基础",重功能(工作流、多租户、支付)需选社区增强版
  • Cloud 版门槛高:需要 Nacos、Sentinel、Seata 等中间件,运维成本明显上升

1.7 局限性

  • 主要用于后台管理系统 / 权限系统这类中后台场景,不是通用业务框架,不直接适用高并发实时业务
  • MyBatis(官方版)而非 MyBatis-Plus,复杂查询/分页需手写 SQL 较多(Plus 增强版才集成 MP)
  • 默认只提供单数据库为主,多数据源需配置;官方版未内置工作流引擎
  • 前端官方版为 Vue 2/3,不含 React 版本

1.8 适用场景

场景 推荐版本
传统后端渲染管理后台 / 学习入门 RuoYi(经典版)
绝大多数中后台系统、业务管理系统 RuoYi-Vue
高并发、多服务、需服务治理的大企业项目 RuoYi-Cloud
需要 APP / 微信小程序 / H5 移动端 RuoYi-App(配合 Vue/Cloud 后端)
需要工作流、多租户、支付、商城等重功能 RuoYi-Vue-Plus / RuoYi-Pro 等社区版

1.9 同类竞品

竞品 对比要点
RuoYi-Vue-Plus(dromara 社区) 若依生态增强版,集成 MyBatis-Plus、Sa-Token、Hutool、OSS,是"官方版加强"的热门选择
RuoYi-Pro / yudao 深度重构版,集成 Flowable 工作流、SaaS 多租户、支付、短信、商城,功能最全
jeecg-boot 另一款国内流行的低代码平台,代码生成更重,偏向低代码可视化
pig / pigx 微服务 + 前后端分离 + 工作流的另一个知名脚手架
PearAdmin / vue-element-admin 偏纯前端后台模板,无后端权限体系,需自己搭后端
Ruoyi(国外) 无,若依在国内该细分领域基本处于头部地位

1.10 发展趋势

  • 开源社区活跃趋势:若依在 Gitee 上属于头部级活跃项目,经典版获 GVP 奖,Star 数均在数万级(详见 1.3 各版本 Star/Fork),长期保持高频更新
  • 技术演进方向:
    1. 官方明确多分支并行:SpringBoot 2.x(JDK8)→ 3.x → 4.x(JDK17+)同步维护,降低升级风险
    2. 前端 Vue2 已"维护重心转移",Vue3 + Vite + Pinia + TS 成为官方主推
    3. 生态重心逐步转向社区增强版(Plus / Pro),官方版保持"基础、稳定、简单"的定位
  • 一句话总结:若依正从"单一脚手架"走向"多形态 + 多版本并行维护"的完整生态,核心竞争力是同源复用 + 免费开源,但深度功能创新更多依赖社区衍生版本。

2 工作原理与架构

2.1 概念术语

  • RBAC:基于角色的访问控制,用户 ↔ 角色 ↔ 菜单/按钮权限的三层模型,是若依权限体系核心
  • 数据权限:除菜单权限外,可按"本部门 / 本部门及以下 / 仅本人 / 自定义"等范围限制数据可见性
  • Token / JWT:前后端分离版用 JWT 做无状态认证,token 存 Redis
  • Nacos:微服务版的注册中心 + 配置中心
  • Sentinel:微服务版的流量控制 / 熔断框架
  • Seata:微服务版的分布式事务框架
  • Shiro / Spring Security:分别是经典版与 Vue 版的安全框架

2.2 各版本架构对比

维度 RuoYi 经典版 RuoYi-Vue RuoYi-Cloud RuoYi-App
架构形态 单体 + SSR 单体 + 前后端分离 分布式微服务 纯前端(uniapp)
后端框架 SpringBoot + Shiro SpringBoot + SpringSecurity SpringCloudAlibaba 无(对接后端)
持久层 MyBatis + Druid MyBatis + Druid MyBatis + Druid 无
缓存 支持 Redis Redis(认证+缓存) Redis 无
认证方式 Shiro 会话 JWT + Redis JWT + Redis + 网关鉴权 调用后端 Token
注册/配置中心 无 无 Nacos 无
流量控制 无 无 Sentinel 无
分布式事务 无 无 Seata 无
前端 Thymeleaf+Bootstrap Vue+Element Vue+Element(同 Vue) uni-ui

2.2.1 RuoYi-Cloud 微服务模块结构

com.ruoyi
├── ruoyi-ui            前端框架 [80]
├── ruoyi-gateway       网关模块 [8080]
├── ruoyi-auth          认证中心 [9200]
├── ruoyi-api           接口模块
│   └── ruoyi-api-system 系统接口
├── ruoyi-common        通用模块
│   ├── core / datascope / datasource / log / redis
│   ├── seata / security / sensitive / swagger
├── ruoyi-modules       业务模块
│   ├── ruoyi-system    系统模块 [9201]
│   ├── ruoyi-gen       代码生成 [9202]
│   ├── ruoyi-job       定时任务 [9203]
│   └── ruoyi-file      文件服务 [9300]
├── ruoyi-visual        图形化管理模块
│   └── ruoyi-visual-monitor 监控中心 [9100]

典型请求链路:Nginx → ruoyi-gateway 网关 →(Nacos 注册发现)→ ruoyi-auth 认证 / 各业务服务,配 Sentinel 限流、Sleuth 链路追踪、ELK 日志聚合、消息队列(RabbitMQ/Kafka)异步解耦。

2.3 前端版本矩阵(Vue 系通用)

前端变体 框架 语言 构建 UI 状态管理 路由
Vue2 Vue 2 JS Vue CLI Element UI Vuex Vue Router 3
Vue3(官方主推) Vue 3 JS Vite Element Plus Pinia Vue Router 4
Vue3-TS Vue 3 TypeScript Vite Element Plus Pinia Vue Router 4

说明:RuoYi-Vue 与 RuoYi-Cloud 共用这套前端版本矩阵;RuoYi-App 另有 Vue2(Vuex)/ Vue3(Pinia)两套变体。

2.4 后端 SpringBoot 版本矩阵(四大后端版本通用)

分支 版本 JDK 说明
master(默认) Spring Boot 4.x JDK 17+ 最新,Cloud 版配 Nacos 3.x
springboot3 Spring Boot 3.x JDK 17+ Cloud 版配 Nacos 3.x
springboot2 Spring Boot 2.x JDK 8+ 旧项目/低版本 JDK 兼容,Cloud 版配 Nacos 2.x

3 使用指南

3.1 安装部署

3.1.1 环境要求

版本 必装 可选/必须中间件
RuoYi 经典版 JDK、Maven、MySQL Redis(如需缓存)
RuoYi-Vue JDK、Maven、Node.js、MySQL Redis(必需)
RuoYi-Cloud JDK、Maven、Node.js、MySQL Redis + Nacos(必需),Sentinel/Seata 按需
RuoYi-App HBuilder X 依赖上述后端,需配置后端接口地址

3.1.2 快速启动(以 RuoYi-Vue 为例)

  1. 数据库:执行 sql/ry_2021xxxx.sql 初始化脚本(MySQL 8 及以上)
  2. 后端:修改 application-druid.yml 数据库连接 → 启动 Redis → 运行 RuoYiApplication.java
  3. 前端:cd ruoyi-ui → npm install → npm run dev,访问 http://localhost:80,默认账号 admin/admin123
  4. Cloud 版:先启动 Nacos(导入 sql/ry_config.sql 配置),再依次启动 gateway、auth、各 modules 服务

官方提供 ry.sh / ry.bat 脚本辅助构建运行;Cloud 版 docker 目录含容器化配置。

3.2 关键操作

  • 代码生成:系统工具 → 代码生成 → 导入表 → 生成,可一键产出前后端 CRUD 代码
  • 权限配置:角色管理分配菜单权限;用户管理分配角色、岗位、部门(决定数据权限范围)
  • 定时任务:系统监控 → 定时任务,在线新增/修改,支持调用 Spring Bean 方法
  • 多终端接入:Vue 版 JWT 认证天然支持 Web / App / 小程序,移动端用 RuoYi-App 对接

4 衍生项目

CASE 基于 Ruoyi-Vue 3.4.0 重构的、分布式的、多租户后台管理系统 : RuoYi-Vue-Plus

  • Description
  • 基于官方 RuoYi-Vue v3.4.0 进行了改造。
  • 重写RuoYi-Vue所有功能 集成 Sa-Token、Mybatis-Plus、WarmFlow、SpringDoc、Hutool、OSS 定期同步

这不是简单 fork 修补,而是 "重写"。官方对自己的定位就是「重写 RuoYi-Vue 所有功能,针对分布式集群场景全方位升级,不兼容原框架」—— 意味着拿到的是原框架的业务功能,但底层几乎全换了。

  • 核心替换清单(相对原版 RuoYi-Vue):
维度 原版 RuoYi-Vue RuoYi-Vue-Plus
安全框架 Spring Security + JWT Sa-Token
ORM MyBatis(XML手写SQL) MyBatis-Plus
缓存 Lettuce + RedisTemplate Redisson
序列化 fastjson Jackson
Web容器 Tomcat Jetty / Undertow
定时任务 Quartz(单机) SnailJob(分布式)
接口文档 Springfox(停维护) SpringDoc
工作流 无 WarmFlow
文件/云存储 本机存储 Minio / S3协议
数据库 MySQL/Oracle 原生支持多种 + 异构多数据源
  • 发展脉络(时间线)

作者:疯狂的狮子Li(JavaLionLi),属 dromara 社区,官方主阵地为 Gitee(约 17.1K Star / 10.5K Fork),GitHub 为镜像。

flowchart LR A[2020-02<br/>v1.0.0 基于RuoYi-Vue 3.4.0<br/>重写起步] --> B[2021<br/>v1.x~v3.x<br/>SpringBoot2+Vue2 功能增强] B --> C[2022-2023<br/>v4.x<br/>Sa-Token/MP/Redisson 全面重构<br/>功能爆发期] C --> D[2023-05<br/>v5.0.0<br/>SpringBoot3+Vue3 技术栈升级] D --> E[2023-09<br/>v5.1.0<br/>三方授权/传输加密/分布式任务<br/>公测后正式发布] E --> F[2024-2026<br/>v5.2~v5.6<br/>稳定迭代 依赖升级] F --> G[2026-06/07<br/>v6.0.0<br/>SpringBoot4+移除多租户+AI Agent+React前端]

分阶段详解:

阶段 版本区间 时间 关键特征
1.x 起步期 v1.0.0 → v1.5.0 2020-02 → 2021-04 基于 RuoYi-Vue 3.4.0 重写,逐月迭代,建立 Plus 体系
2.x 功能期 v2.0.0 → v2.6.0 2021-05 → 2021-07 高频小步迭代(半月一版),功能与依赖持续完善
3.x 稳定期 v3.0.0 → v3.5.0 2021-08 → 2021-12 体系成型,转向月度稳定版
4.x 重构爆发期 v4.0.0 → v4.8.2 2022-02 → 2023-11 核心全面替换(Sa-Token/MP/Redisson/Jackson/SpringDoc),功能最密集的大版本
5.x 技术栈升级 v5.0.0 → v5.6.1 2023-05 → 2026-04 升级 SpringBoot3 + Vue3;v5.1.0(2023-09)上线三方授权/传输加密/sms4j/powerjob 后进入生产稳定;后续做依赖升级与漏洞修复
6.x 最新大版本 v6.0.0 2026-06(公测) → 07-30(正式) 升级 SpringBoot4 + JDK21、移除多租户、集成 snail-ai AI Agent 平台、新增 React 前端(plus-ui-react)、并入 MCP/MQTT/ES 模块

核心演进脉络:从「RuoYi-Vue 3.4.0 的分布式重写版」→ 4.x 完成底层技术栈全面替换 → 5.x 拥抱 SpringBoot3/Vue3 → 6.x 升级 SpringBoot4 并转向 AI(Agent/MCP),且 6.x 主动砍掉多租户以回归轻量——重功能、新技术的跟进速度明显快于官方原版。

  • URL

2.8k Github Star / 817 Github Fork (2026.11.04)

Z FAQ for Ruoyi

Q: RuoYi、RuoYi-Vue、RuoYi-Cloud、RuoYi-App 到底什么关系?

A: 它们是同一套框架的不同架构形态,不是"同一个代码升级出的四个版本",而是作者分别打造的四个并列项目(均开源、均可商用)。业务模块(用户/部门/角色/权限/日志/代码生成等)高度一致,主要区别在后端架构:经典版=单体服务端渲染,Vue版=单体前后端分离,Cloud版=微服务,App版=纯移动端前端(需对接 Vue/Cloud 后端)。

Q: 我应该选哪个版本?

A: 绝大多数情况选 RuoYi-Vue。若没有微服务需求,上 Cloud 只会徒增 Nacos/Sentinel/Seata 运维成本;若不需要移动端,App 无意义;若团队习惯传统后端渲染或想入门,可看经典版。需要工作流/多租户/支付等重功能时,改选 RuoYi-Vue-Plus / RuoYi-Pro。

Q: RuoYi-Vue 和 RuoYi-Cloud 的前端一样吗?

A: 基本一样,Cloud 版前端就是基于 RuoYi-Vue 前端改造(只是请求走网关、接口路径有差异),所以"会 Vue 版前端就会 Cloud 版前端"。这也是官方刻意设计的同源复用。

Q: RuoYi 和 RuoYi-Vue 在技术栈上的本质区别?

A: 经典版用 Shiro + Thymeleaf(服务端渲染页面);Vue 版用 Spring Security + JWT + Redis(前后端分离,前端 Vue 渲染)。经典版页面是后端拼出来的 HTML,Vue 版前后端完全分离、接口交互。

Q: 什么是 RuoYi-Vue-Plus / RuoYi-Pro?是官方版吗?

A: 都不是官方项目,是社区(dromara 等)基于若依衍生的增强版本。Plus 集成 MyBatis-Plus、Sa-Token、Hutool、OSS 等;Pro(yudao 系)进一步集成 Flowable 工作流、SaaS 多租户、支付、短信、商城,功能远超官方版,适合重业务场景。

Q: 若依有哪些已知安全漏洞?如何防护?

A: 官方文档披露了若干历史漏洞(均为旧版本),关键防护:

  • 定时任务反序列化漏洞(≤v4.6.2):禁止 rmi/ldap/http(s) 目标字符串
  • Shiro RememberMe 反序列化漏洞(≤v4.3.0):必须修改默认 cipherKey
  • SQL 注入(≤v4.6.1):升级版本 + order by 校验
  • Thymeleaf 模板注入(≤v4.7.1)、log4j2 RCE(≤2.17.0)
  • 默认账号 admin/admin123 务必修改,并升级到最新版本

Q: RuoYi-App 需要单独后端吗?

A: 需要。RuoYi-App 是纯移动端前端框架,本身不含后端,必须在 config.js 中配置 RuoYi-Vue 或 RuoYi-Cloud 后端的接口地址,对接其登录、用户、字典等接口。

Q: 官方版用 MyBatis 还是 MyBatis-Plus?

A: 官方四版都用原生 MyBatis(不带 Plus)。只有社区增强版 RuoYi-Vue-Plus 才集成 MyBatis-Plus。若你特别在意 MP 的便捷性,直接考虑 Plus 版。


Y 推荐文献

  • Ruoyi

X 参考文献

posted @ 2026-11-04 00:48  千千寰宇  阅读(3)  评论(0)    收藏  举报