[技术调研/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 目前是官方主推、社区资料最丰富的版本。
1 概述
1.1 产品介绍
若依(RuoYi)是一套全部开源、可免费商用(含个人)的 Java 快速开发平台,是国内最流行的后台管理/权限管理脚手架之一。
- 产品定位:企业级 Web 快速开发平台,开箱即用,用于快速搭建后台管理系统、权限系统
- 诞生背景:作者(y_project / 若依)表示"看了很多优秀的开源项目但没有合适的",于是自己写了一套后台系统。名字取自作者女儿(寓意"你若不离不弃,我必生死相依")
- 解决的核心问题:后台管理系统重复建设问题——RBAC 权限、部门/用户/角色管理、日志、代码生成、定时任务等基础能力重复造轮子;本框架把这些做成通用内置模块 + 一键代码生成器,让开发者专注业务
- URLs:
- 官网: http://ruoyi.vip
- 在线文档: http://doc.ruoyi.vip
- 在线演示:
- http://demo.ruoyi.vip (经典)/
- http://vue.ruoyi.vip (Vue版 / 单体+前后端分离版)/
- http://h5.ruoyi.vip (App版)
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 项内置模块)
- 用户管理:系统操作者配置
- 部门管理:组织机构树,支持数据权限
- 岗位管理:用户所属职务
- 菜单管理:菜单、操作权限、按钮权限标识
- 角色管理:菜单权限分配 + 按机构数据范围权限划分
- 字典管理:固定数据维护
- 参数管理:动态配置常用参数
- 通知公告:公告信息发布维护
- 操作日志 / 登录日志:正常与异常操作记录、登录日志
- 在线用户:活跃用户状态监控
- 定时任务:在线任务调度 + 执行结果日志(Quartz)
- 代码生成:一键生成前后端代码(java/html/xml/sql),支持 CRUD 下载
- 系统接口:自动生成 API 接口文档(Swagger)
- 服务监控 / 缓存监控:CPU、内存、磁盘、堆栈、缓存信息监控
- 在线构建器:拖拽表单元素生成 HTML 代码
- 连接池监视:数据库连接池状态 + 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),长期保持高频更新
- 技术演进方向:
- 官方明确多分支并行:SpringBoot 2.x(JDK8)→ 3.x → 4.x(JDK17+)同步维护,降低升级风险
- 前端 Vue2 已"维护重心转移",Vue3 + Vite + Pinia + TS 成为官方主推
- 生态重心逐步转向社区增强版(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 为例)
- 数据库:执行
sql/ry_2021xxxx.sql初始化脚本(MySQL 8 及以上) - 后端:修改
application-druid.yml数据库连接 → 启动 Redis → 运行RuoYiApplication.java - 前端:
cd ruoyi-ui→npm install→npm run dev,访问http://localhost:80,默认账号admin/admin123 - 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 为镜像。
分阶段详解:
| 阶段 | 版本区间 | 时间 | 关键特征 |
|---|---|---|---|
| 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
- http://ruoyi.vip
- RuoYi 在线文档: http://doc.ruoyi.vip
- 若依系列官方教程/官方演示站: http://demo.ruoyi.vip
- 全面解读RuoYi 系列项目不同版本与应用场景 - CSDN 2024.11.25
X 参考文献
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号