1965 字
10 分钟
RuoYi 学习路线总览:从 0 到 1 拆解若依后台管理系统
写了几年前端,最近想系统学习 Java 后台开发。选了 RuoYi(若依) 作为切入点——它是一个基于 Spring Boot 的轻量级后台管理系统,核心技术采用 Spring + MyBatis + Shiro,没有过度封装,代码结构清晰,非常适合学习。
这个系列不是”RuoYi 使用手册”,而是一份项目拆解笔记:把若依的 18 个功能模块拆成 12 个学习阶段,每个阶段聚焦一个核心技术点,配上项目中的真实代码片段,方便日后回来快速回忆。
NOTE阅读顺序建议按下面的阶段编号从头到尾走一遍;已经熟悉的阶段可以直接跳到对应文章当作速查表使用。
项目简介
| 维度 | 内容 |
|---|---|
| 项目名称 | RuoYi(若依) |
| 当前版本 | v4.8.3 |
| 技术栈 | Spring Boot + Spring + MyBatis + Shiro |
| 前端 | Hplus (H+) 后台主题 UI |
| JDK 版本 | 支持 8+ / 17+(多版本分支) |
| 数据库 | MySQL 5.7+ / 8.0+ |
| 项目地址 | https://github.com/yangzongzhuan/RuoYi |
内置功能模块
RuoYi 提供了 18 个开箱即用的功能模块:
| 序号 | 模块 | 说明 |
|---|---|---|
| 1 | 用户管理 | 系统用户配置、密码加密、状态管理 |
| 2 | 部门管理 | 组织机构树结构、数据权限 |
| 3 | 岗位管理 | 用户所属职务配置 |
| 4 | 菜单管理 | 系统菜单、操作权限、按钮权限标识 |
| 5 | 角色管理 | 角色菜单权限分配、数据范围权限 |
| 6 | 字典管理 | 固定数据维护(如性别、状态) |
| 7 | 参数管理 | 系统动态配置常用参数 |
| 8 | 通知公告 | 系统通知公告信息发布 |
| 9 | 操作日志 | 正常操作日志记录和查询 |
| 10 | 登录日志 | 登录日志记录查询(含异常) |
| 11 | 在线用户 | 活跃用户状态监控 |
| 12 | 定时任务 | 在线任务调度、执行结果日志 |
| 13 | 代码生成 | 前后端代码生成(CRUD) |
| 14 | 系统接口 | 自动生成 API 接口文档 |
| 15 | 服务监控 | CPU、内存、磁盘、堆栈监控 |
| 16 | 缓存监控 | 缓存查询、删除、清空 |
| 17 | 在线构建器 | 拖动表单元素生成 HTML |
| 18 | 连接池监视 | 数据库连接池状态监控 |
学习路线图
整个路线拆成 12 个阶段,前 4 个阶段是技术基础,中间 4 个是核心业务模块,最后 4 个是高级特性:
| 阶段 | 主题 | 关键概念 | 预计投入 |
|---|---|---|---|
| 一 | 项目概览与环境搭建 | JDK/Maven/MySQL、项目结构、配置文件 | 半天 |
| 二 | Spring Boot 基础 | IoC/DI、注解、自动配置、Starter | 1 天 |
| 三 | MyBatis 与数据库 | Mapper/XML、CRUD、分页、事务 | 1 天 |
| 四 | Shiro 权限框架 | 认证/授权、Session、Realm、注解 | 1 天 |
| 五 | 用户管理模块 | 实体类、Service、Controller、密码加密 | 1 天 |
| 六 | 角色与菜单管理 | RBAC 模型、树形结构、权限分配 | 1 天 |
| 七 | 部门与岗位管理 | 数据权限、树形查询、递归 | 半天 |
| 八 | 字典与参数管理 | 缓存设计、Redis 集成、配置中心 | 半天 |
| 九 | 日志管理 | AOP 切面、操作日志、登录日志 | 半天 |
| 十 | 定时任务 | Quartz 框架、任务调度、执行日志 | 1 天 |
| 十一 | 代码生成器 | 模板引擎、Velocity、自定义生成 | 1 天 |
| 十二 | 系统监控 | Actuator、服务监控、缓存监控 | 半天 |
阶段索引
下面是每个阶段对应的文章。链接是站内绝对路径,跟着 base /blog 走:
前端工程师的技术栈对照
学 RuoYi 之前,先把前端里熟悉的模式映射到 Java 后台:
| 维度 | 前端 (React/Vue) | RuoYi (Java) |
|---|---|---|
| 项目结构 | src/components/、src/pages/ | src/main/java/com/ruoyi/ 按模块分包 |
| 依赖管理 | package.json + npm/pnpm | pom.xml + Maven |
| 路由 | React Router / Vue Router | Spring MVC @RequestMapping |
| 状态管理 | Redux / Vuex / Zustand | Shiro Session + Redis 缓存 |
| HTTP 请求 | axios / fetch | Spring RestTemplate / MyBatis SQL |
| 表单验证 | Formik / VeeValidate | Hibernate Validator @Valid |
| 权限控制 | 路由守卫 + 按钮级权限 | Shiro 注解 @RequiresPermissions |
| 组件复用 | 公共组件 / Hooks | Service 层 / 工具类 |
| 配置管理 | .env / config.js | application.yml / application-druid.yml |
| 构建工具 | Vite / Webpack | Maven / Gradle |
| 代码生成 | plop / hygen | RuoYi 代码生成器 (Velocity 模板) |
TIPRuoYi 里最像前端的两个地方:
- 代码生成器——类似前端的脚手架,根据数据库表生成 CRUD 代码
- 树形结构——部门、菜单都是树形数据,和前端 Tree 组件逻辑一致
环境准备(一次性)
后续每篇文章里的代码都假设你已经完成下面这些准备:
# 1. 装 JDK 17+(推荐 Eclipse Temurin 或 Oracle JDK)java -version# openjdk version "17.0.x" ...
# 2. 装 Maven 3.6+mvn -v# Apache Maven 3.9.x
# 3. 装 MySQL 5.7+ 或 8.0+mysql --version# mysql Ver 8.0.x
# 4. 装 Redis(可选,用于缓存和 Session)redis-server --version# Redis server v=7.x
# 5. 装一个 IDE:IntelliJ IDEA Community 免费且开箱即用# Eclipse 也可以,但 IDEA 对 Spring Boot 支持更好克隆项目
# 克隆 RuoYi 项目git clone https://github.com/yangzongzhuan/RuoYi.gitcd RuoYi
# 导入数据库脚本# sql/ry_20240629.sql 是主库脚本# sql/quartz.sql 是定时任务脚本mysql -u root -p < sql/ry_20240629.sqlmysql -u root -p < sql/quartz.sql修改配置
spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: your_password# 启动项目mvn spring-boot:run# 或者直接在 IDEA 里运行 RuoYiApplication.java
# 访问 http://localhost:80# 默认账号:admin / admin123项目结构速览
RuoYi/├── src/│ ├── main/│ │ ├── java/com/ruoyi/│ │ │ ├── common/ # 公共模块(工具类、常量、异常)│ │ │ ├── framework/ # 框架核心(Shiro、MyBatis、AOP)│ │ │ ├── generator/ # 代码生成器│ │ │ ├── quartz/ # 定时任务│ │ │ ├── system/ # 系统模块(用户、角色、菜单、部门)│ │ │ └── web/ # Web 层(Controller)│ │ └── resources/│ │ ├── mapper/ # MyBatis XML 映射文件│ │ ├── static/ # 静态资源(前端页面)│ │ ├── templates/ # Thymeleaf 模板│ │ └── application.yml # 配置文件│ └── test/ # 测试代码├── sql/ # 数据库脚本├── pom.xml # Maven 配置└── README.md # 项目说明如何使用这个系列复习
写这个系列时特意做了三件事,方便日后回来”扫一眼就想起来”:
- 每篇文章都有”复习卡片”小节,把关键概念压缩成几行代码或一张表,不用重读正文也能回忆起要点。
- 每个功能都配项目真实代码,代码块都标注了文件路径,可以直接在 IDEA 里定位。
- 每个阶段都有架构图或流程图,帮助理解模块之间的关系。
推荐的复习节奏:
- 第一次学:按阶段顺序读,每篇结束在 IDEA 里把对应模块的代码翻一遍。
- 一周后:只看每篇的”复习卡片”和架构图,回忆不起来的再翻正文。
- 一个月后:把整个系列当作速查手册,遇到具体功能问题直接搜文章内的锚点。
WARNING光读不写等于没学。每个阶段建议配一个小练习:
- 阶段一到四:跑通项目,理解启动流程
- 阶段五到八:给某个模块加一个新字段(如用户加”手机号”)
- 阶段九到十二:用代码生成器生成一个新模块,并集成到系统中
参考资源
- RuoYi 官方文档:http://doc.ruoyi.vip
- RuoYi 在线演示:http://ruoyi.vip(admin/admin123)
- Spring Boot 官方文档:https://spring.io/projects/spring-boot
- MyBatis 官方文档:https://mybatis.org/mybatis-3/
- Shiro 官方文档:https://shiro.apache.org/
- GitHub 项目地址:https://github.com/yangzongzhuan/RuoYi
下一篇从最基础的项目结构和环境搭建开始,把”RuoYi 是怎么跑起来的”讲清楚。
RuoYi 学习路线总览:从 0 到 1 拆解若依后台管理系统
http://117.72.32.87/blog/posts/ruoyi-roadmap-00-overview/