ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

10 分钟上手 RuoYi-Vue-Plus:Spring Boot 4 Java 后台脚手架实战指南

10 分钟上手 RuoYi-Vue-Plus:Spring Boot 4 Java 后台脚手架实战指南

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支持角色/权限注解校验、多方登录
ORMMyBatis-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.portapplication.yml8080应用 HTTP 端口端口冲突或与前端代理不符时
spring.profiles.activeapplication.yml由 Maven profile 注入(默认 dev)决定加载哪份环境配置打包 prod 时由-Pprod切换
spring.datasource.dynamic.datasource.master.*application-dev.ymlMySQLlocalhost:3306/ry-vue,账号 root/root主数据源,基于 dynamic-datasource 支持异构多库本地启动必改:改成你自己的库地址与账号
spring.data.redis.*application-dev.ymllocalhost:6379,密码ruoyi123Redis 连接本地 Redis 密码不同或部署到远程时
sa-token.token-name/jwt-secret-keyapplication.ymlAuthorization/ 示例密钥登录态 Token 名称与 JWT 签名密钥生产环境务必更换密钥
mybatis-plus.mapperPackageapplication.ymlorg.dromara.**.mapperMapper 接口扫描范围新增业务模块改了包结构时
springdoc.group-configsapplication.yml按包名分 5 组接口文档分组新增业务模块想单独成组时

⚠️ 两个高频坑:一是api-decrypt配置里的接口加解密密钥默认是示例值,生产前需生成替换;二是 Redis 配置里"单机与集群"二选一,切换时注意注释掉另一段,否则会以后加载者为准。

下一步建议与常见坑

接下来干什么

  1. 打开ruoyi-modules/ruoyi-demo,里面有 Excel、加密、分布式锁、限流、MQTT 等真实可运行的功能案例,是理解各 common 包用法的最佳入口;
  2. 用ruoyi-gen代码生成器建一张表试试一键出 CRUD,感受"降 80% 重复代码"的卖点;
  3. 需要改包名/模块名时,参考 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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进