10 分钟上手 RuoYi-Vue-Plus:Spring Boot 4 Java 后台脚手架实战指南
【免费下载链接】RuoYi-Vue-Plus多租户后台管理系统 重写RuoYi-Vue所有功能 集成 Sa-Token、Mybatis-Plus、WarmFlow、SpringDoc、Hutool、OSS 定期同步项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus
RuoYi-Vue-Plus 是一款面向多租户后台管理场景的 Java 快速开发框架,基于 Spring Boot 深度整合 Sa-Token、MyBatis-Plus、Redisson、WarmFlow、SpringDoc 等主流组件,开箱即用地提供用户、角色、权限、代码生成、工作流等完整功能,帮你把 CRUD 和权限体系这部分"地基"一次打好。
RuoYi-Vue-Plus 是一款什么脚手架
先说结论:它不是一个"半成品模板",而是一个针对分布式集群场景重写的成熟后端基座——用户、部门、角色、菜单、字典、日志、文件、定时任务、代码生成器这些后台系统绕不开的东西全部内置,且按插件化方式拆包,用不上的模块直接从 pom 里去掉即可。
核心技术选型速览:
| 技术领域 | 选用方案 | 说明 |
|---|---|---|
| 运行环境 | JDK 21 + Spring Boot 4.1 | 当前版本要求 |
| Web 容器 | Jetty | 基于 Netty 的高性能容器 |
| 权限认证 | Sa-Token + JWT | 支持角色/权限注解校验、多方登录 |
| ORM | MyBatis-Plus | 分页、乐观锁、数据权限等插件化 |
| 缓存 | Redis + Redisson | 分布式锁、限流、会话同步 |
| 工作流 | WarmFlow | 审批、转办、会签、加减签 |
| 接口文档 | SpringDoc | 基于 Java 注释生成,零文档注解 |
| 工具库 | Hutool + Lombok | 覆盖日常绝大多数工具需求 |
如何把 RuoYi-Vue-Plus 跑起来
1. 准备环境
- JDK 21+、Maven 3.6+
- MySQL 8.x(初始化脚本在 script/sql/ 目录,
ry_vue.sql为核心库) - Redis(密码默认约定为
ruoyi123,见 dev 配置)
不想手动装环境的话,script/docker/docker-compose.yml 已编排好 MySQL、Redis、Nginx 等全套服务,一条命令拉起。
2. 拉取并启动
git clone https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus cd RuoYi-Vue-Plus用 IDE 导入根目录 pom.xml,先执行mvn install让各模块互相引用成功,然后在 ruoyi-admin 模块中找到启动类DromaraApplication,直接运行main方法。Maven 默认激活devprofile(见根 pom 的<activeByDefault>),对应的就是application-dev.yml。
3. 验证
启动日志末尾出现 "RuoYi-Vue-Plus启动成功" 即代表就绪。访问http://localhost:8080后,打开http://localhost:8080/plus-doc.html(SpringDoc 接口文档页)能看到按模块分组的 API 列表,说明服务已正常工作。默认账号一般是admin/admin123(具体以导入的 SQL 初始化数据为准)。
RuoYi-Vue-Plus 模块职责一览表
先看精简目录树,抓住主干即可:
RuoYi-Vue-Plus/ ├── ruoyi-admin/ # 可启动的 Web 入口,聚合各模块 ├── ruoyi-api/ # 跨模块共享的接口与 DTO(解耦用) ├── ruoyi-common/ # 通用能力家族:20+ 个 common-* 子包 ├── ruoyi-modules/ # 业务模块:system、workflow、gen、job、demo... ├── ruoyi-extend/ # 独立部署的扩展服务(监控、任务调度 Server) └── script/ # SQL 脚本与 Docker 编排各模块定位:
| 模块 | 定位 | 关键内容 |
|---|---|---|
| ruoyi-admin | 启动入口 + 登录鉴权 | 启动类、认证策略(密码/短信/邮件/小程序/社交登录)、登录事件监听 |
| ruoyi-common | 框架层的"全家桶" | 按能力拆成 20+ 子包:-redis、-satoken、-mybatis、-excel、-oss、-job、-ai等 |
| ruoyi-modules/ruoyi-system | 核心业务 | 用户、角色、菜单、字典、日志等 19 个控制器及配套 service/mapper |
| ruoyi-modules/ruoyi-gen | 代码生成器 | 设计好表结构后一键生成前后端 CRUD |
| ruoyi-modules/ruoyi-workflow | 工作流 | 基于 WarmFlow 的审批流实现 |
| ruoyi-api | 模块间契约 | 跨模块调用的 Service 接口与 DTO,避免模块互相引包 |
| ruoyi-extend | 独立服务 | Spring Boot Admin 监控台、SnailJob 调度 Server、SnailAI Server |
💡 一个容易困惑的点:老版 RuoYi 有独立的
ruoyi-framework模块,而 RuoYi-Vue-Plus 把框架层能力打散进了ruoyi-common的各子包。所以你要找的拦截器、Redis 封装、加密组件等,都去ruoyi-common下面按子包找,而不是找一个 framework 目录。
启动入口在做什么
整个工程只有一个可运行的入口:DromaraApplication.java。贴一下原文,代码量极少:
@SpringBootApplication public class DromaraApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(DromaraApplication.class); application.setApplicationStartup(new BufferingApplicationStartup(2048)); application.run(args); System.out.println("(♥◠‿◠)ノ゙ RuoYi-Vue-Plus启动成功 ლ(´ڡ`ლ)゙"); } }别看它只有 5 行,run(args)一调用,背后替读者干完了一整套事:
- 组件扫描:
@SpringBootApplication会扫描org.dromara包下所有@Controller、@Service等 Bean,所以ruoyi-modules里各业务模块的类能被自动装配进来,无需手工注册; - 自动配置:依据各 common 包提供的
spring.factories/自动配置类,把 Sa-Token 认证、MyBatis-Plus 拦截器、Redis 序列化等能力"静默"装进容器——这也是插件化解耦的体现; - 加载环境配置:按 Maven profile 加载
application-dev.yml等环境文件,完成数据源、Redis 的初始化; BufferingApplicationStartup(2048)则是记录启动过程最近 2048 个事件的缓冲器,供 Spring Boot Admin 做启动耗时分析,与业务无关,可无视。
RuoYi-Vue-Plus 关键配置项速查
配置分两层:application.yml 放所有环境通用的设置,application-dev.yml/application-prod.yml放环境相关的设置(数据库地址、Redis 地址等)。最常要动的几项:
| 配置项 | 位置 | 默认值 | 作用 | 何时需要改 |
|---|---|---|---|---|
server.port | application.yml | 8080 | 应用 HTTP 端口 | 端口冲突或与前端代理不符时 |
spring.profiles.active | application.yml | 由 Maven profile 注入(默认 dev) | 决定加载哪份环境配置 | 打包 prod 时由-Pprod切换 |
spring.datasource.dynamic.datasource.master.* | application-dev.yml | MySQLlocalhost:3306/ry-vue,账号 root/root | 主数据源,基于 dynamic-datasource 支持异构多库 | 本地启动必改:改成你自己的库地址与账号 |
spring.data.redis.* | application-dev.yml | localhost:6379,密码ruoyi123 | Redis 连接 | 本地 Redis 密码不同或部署到远程时 |
sa-token.token-name/jwt-secret-key | application.yml | Authorization/ 示例密钥 | 登录态 Token 名称与 JWT 签名密钥 | 生产环境务必更换密钥 |
mybatis-plus.mapperPackage | application.yml | org.dromara.**.mapper | Mapper 接口扫描范围 | 新增业务模块改了包结构时 |
springdoc.group-configs | application.yml | 按包名分 5 组 | 接口文档分组 | 新增业务模块想单独成组时 |
⚠️ 两个高频坑:一是
api-decrypt配置里的接口加解密密钥默认是示例值,生产前需生成替换;二是 Redis 配置里"单机与集群"二选一,切换时注意注释掉另一段,否则会以后加载者为准。
下一步建议与常见坑
接下来干什么
- 打开
ruoyi-modules/ruoyi-demo,里面有 Excel、加密、分布式锁、限流、MQTT 等真实可运行的功能案例,是理解各 common 包用法的最佳入口; - 用
ruoyi-gen代码生成器建一张表试试一键出 CRUD,感受"降 80% 重复代码"的卖点; - 需要改包名/模块名时,参考 README 中的项目路径修改方案,不要硬改。
常见坑提示
- 启动报数据源连接失败:99% 是没导入 SQL 或
application-dev.yml里数据库账号不对; - 登录失败:确认 Redis 正常(Sa-Token 会话依赖 Redis),且
ry_vue.sql中的初始用户数据已导入; - 本地能跑、打包后行为不同:检查 Maven profile,
prodprofile 会切换logging.level为warn并加载application-prod.yml。
从跑通到读懂结构只需十分钟:入口在ruoyi-admin,能力在ruoyi-common,业务在ruoyi-modules,改配置优先动application-dev.yml。抓住这四条线,这个脚手架就再不会陌生。
【免费下载链接】RuoYi-Vue-Plus多租户后台管理系统 重写RuoYi-Vue所有功能 集成 Sa-Token、Mybatis-Plus、WarmFlow、SpringDoc、Hutool、OSS 定期同步项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考