若依管理系统 (RuoYi) 项目文档
版本: v4.8.3 · 技术栈: Spring Boot 4.0.3 + JDK 17 + Shiro + MyBatis + Thymeleaf
一、项目简介
若依 (RuoYi) 是一个基于 Spring Boot 的轻量级 Java 快速开发框架,内置完善的后台管理系统基础功能,适合中小型企业管理后台的快速搭建。
核心能力
- 权限管理: 用户 / 角色 / 菜单 / 部门 / 岗位,支持按钮级权限控制 (RBAC)
- 数据字典: 动态配置下拉选项、状态值
- 参数配置: 系统参数在线调整
- 操作日志: 记录所有用户操作,支持导出
- 登录日志: 记录登录历史,支持异常锁定与解锁
- 在线用户: 查看当前在线用户,支持批量强退
- 定时任务: Quartz 调度,可在线添加 Cron 表达式,支持立即执行
- 代码生成: 根据数据库表一键生成完整 CRUD 代码(Controller/Service/Mapper/页面)
- 服务监控: 实时 CPU / 内存 / 磁盘 / JVM 监控
- 缓存监控: EhCache 缓存内容查看与清空
- 数据监控: Druid 连接池 SQL 监控
- 通知公告: 发布系统通知,已读状态追踪
- 表单构建: 拖拽生成表单 HTML
- 系统接口: 集成 Swagger/SpringDoc 接口文档
二、项目结构
system/
├── ruoyi-admin/ Web 入口层:所有 Controller + Thymeleaf 页面模板
├── ruoyi-common/ 通用工具:注解、枚举、字符串/文件/安全/Excel 工具类
├── ruoyi-framework/ 框架核心:Shiro 认证、数据源、AOP、全局异常处理
├── ruoyi-system/ 业务服务层:Service 接口/实现、Domain 实体、Mapper XML
├── ruoyi-quartz/ 定时任务模块:Quartz 调度控制器
├── ruoyi-generator/ 代码生成模块:Velocity 模板生成 CRUD 代码
├── sql/
│ ├── ry_20260319.sql 业务数据库(21张表 + 种子数据)
│ └── quartz.sql Quartz 调度器表(11张)
└── DEPLOY.md 发版部署指南
三、所有账号密码
密码策略
- 系统初始密码(新增用户时): 123456
- 密码加密方式: Shiro MD5(md5(password) + salt),迭代 1024 次
- 登录错误锁定: 5 次错误后锁定 10 分钟
- 验证码: 开启,算术验证码
四、管理后台功能模块与菜单
4.1 系统管理
| 菜单 |
路径 |
说明 |
| 用户管理 |
/system/user |
增删改查用户,分配角色,重置密码,导入/导出 Excel |
| 角色管理 |
/system/role |
管理角色,分配菜单权限、数据权限(按部门) |
| 菜单管理 |
/system/menu |
配置菜单树,设置权限标识(按钮级控制) |
| 部门管理 |
/system/dept |
组织架构树(公司 → 部门 → 小组) |
| 岗位管理 |
/system/post |
岗位独立管理,用户可关联岗位 |
| 字典管理 |
/system/dict |
键值对字典(如性别、状态等),支持刷新缓存 |
| 参数设置 |
/system/config |
系统全局参数 key-value 在线修改 |
| 通知公告 |
/system/notice |
发布通知,标记已读,统计已读人数 |
| 操作日志 |
/monitor/operlog |
记录用户增删改操作,支持导出和清空 |
| 登录日志 |
/monitor/logininfor |
登录记录,支持账户解锁 |
4.2 系统监控
| 菜单 |
路径 |
说明 |
| 在线用户 |
/monitor/online |
当前登录用户列表,支持批量强退 |
| 定时任务 |
/monitor/job |
管理 Quartz 任务,Cron 在线生成 |
| 数据监控 |
/monitor/data |
跳转 Druid 控制台(SQL 监控、URI 监控) |
| 服务监控 |
/monitor/server |
实时服务器状态:CPU、内存、磁盘、JVM |
| 缓存监控 |
/monitor/cache |
EhCache 缓存查看、清空 |
4.3 系统工具
| 菜单 |
路径 |
说明 |
| 代码生成 |
/tool/gen |
导入数据库表 → 生成 Controller/Service/Mapper/页面 |
| 表单构建 |
/tool/build |
拖拽式表单设计器,生成 HTML 代码 |
| 系统接口 |
/tool/swagger |
跳转 Swagger UI,查看所有 API 接口 |
五、接口文档
5.1 认证相关
| 方法 |
路径 |
说明 |
GET |
/login |
登录页面 |
POST |
/login |
Ajax 登录(参数: username, password, rememberMe) |
GET |
/captcha/captchaImage |
获取验证码图片(参数: type=math|char) |
GET |
/register |
注册页面 |
POST |
/register |
Ajax 注册新用户 |
GET |
/logout |
退出登录 |
5.2 系统管理接口
用户管理 /system/user
| 方法 |
路径 |
说明 |
GET |
/system/user/list |
分页查询用户列表 |
POST |
/system/user/export |
导出用户数据 Excel |
POST |
/system/user/importData |
导入用户数据 |
GET |
/system/user/authRole/{userId} |
查询用户角色分配 |
POST |
/system/user/authRole |
保存用户角色分配 |
POST |
/system/user/add |
新增用户 |
GET |
/system/user/edit/{userId} |
编辑用户页面 |
POST |
/system/user/edit |
保存编辑 |
POST |
/system/user/remove |
批量删除用户 |
POST |
/system/user/resetPwd |
重置密码为初始密码 |
POST |
/system/user/changeStatus |
启用/停用用户 |
POST |
/system/user/checkLoginNameUnique |
校验登录名唯一 |
GET |
/system/user/deptTreeData |
获取部门树数据 |
角色管理 /system/role
| 方法 |
路径 |
说明 |
GET |
/system/role/list |
分页查询角色列表 |
POST |
/system/role/export |
导出 |
POST |
/system/role/add |
新增 |
POST |
/system/role/edit |
修改 |
POST |
/system/role/remove |
删除 |
GET/POST |
/system/role/authDataScope |
数据权限分配 |
GET |
/system/role/authUser/allocatedList |
已分配用户列表 |
GET |
/system/role/authUser/unallocatedList |
未分配用户列表 |
POST |
/system/role/authUser/selectAll |
批量分配用户 |
POST |
/system/role/authUser/cancel |
取消单个用户授权 |
POST |
/system/role/authUser/cancelAll |
批量取消授权 |
| 方法 |
路径 |
说明 |
GET |
/system/menu/list |
菜单树列表 |
POST |
/system/menu/add |
新增菜单/按钮 |
POST |
/system/menu/edit |
修改 |
POST |
/system/menu/remove/{menuId} |
删除 |
GET |
/system/menu/roleMenuTreeData |
加载角色菜单树(含权限标识) |
GET |
/system/menu/menuTreeData |
获取所有菜单树数据 |
GET |
/system/menu/icon |
图标列表 |
部门管理 /system/dept
| 方法 |
路径 |
说明 |
GET |
/system/dept/list |
部门树列表 |
POST |
/system/dept/add |
新增部门 |
POST |
/system/dept/edit |
修改 |
GET |
/system/dept/remove/{deptId} |
删除 |
GET |
/system/dept/selectDeptTree/{deptId} |
选择部门树(排除指定部门) |
岗位管理 /system/post
| 方法 |
路径 |
说明 |
GET |
/system/post/list |
分页查询 |
POST |
/system/post/export |
导出 |
POST |
/system/post/add |
新增 |
POST |
/system/post/edit |
修改 |
POST |
/system/post/remove |
删除 |
字典管理
| 方法 |
路径 |
说明 |
GET |
/system/dict/list |
字典类型分页 |
GET |
/system/dict/detail/{dictId} |
字典类型详情 |
GET |
/system/dict/treeData |
字典树 |
POST |
/system/dict/add |
新增字典类型 |
POST |
/system/dict/edit |
修改 |
POST |
/system/dict/remove |
删除 |
POST |
/system/dict/refreshCache |
刷新字典缓存 |
GET |
/system/dict/data/list |
字典数据分页 |
POST |
/system/dict/data/add |
新增字典数据 |
POST |
/system/dict/data/edit |
修改字典数据 |
POST |
/system/dict/data/remove |
删除字典数据 |
参数配置 /system/config
| 方法 |
路径 |
说明 |
GET |
/system/config/list |
分页查询 |
POST |
/system/config/add |
新增 |
POST |
/system/config/edit |
修改 |
POST |
/system/config/remove |
删除 |
POST |
/system/config/refreshCache |
刷新缓存 |
通知公告 /system/notice
| 方法 |
路径 |
说明 |
GET |
/system/notice/list |
分页查询 |
POST |
/system/notice/add |
新增 |
POST |
/system/notice/edit |
修改 |
POST |
/system/notice/remove |
删除 |
个人信息 /system/user/profile
| 方法 |
路径 |
说明 |
GET |
/system/user/profile |
个人信息页面 |
POST |
/system/user/profile/update |
修改基本信息 |
POST |
/system/user/profile/resetPwd |
修改密码 |
POST |
/system/user/profile/avatar |
上传头像 |
POST |
/system/user/profile/checkPassword |
校验密码 |
5.3 系统监控接口
在线用户 /monitor/online
| 方法 |
路径 |
说明 |
GET |
/monitor/online/list |
在线用户列表 |
POST |
/monitor/online/batchForceLogout |
批量强退 |
操作日志 /monitor/operlog
| 方法 |
路径 |
说明 |
GET |
/monitor/operlog/list |
分页查询 |
POST |
/monitor/operlog/export |
导出 |
POST |
/monitor/operlog/remove |
删除 |
POST |
/monitor/operlog/clean |
清空所有日志 |
登录日志 /monitor/logininfor
| 方法 |
路径 |
说明 |
GET |
/monitor/logininfor/list |
分页查询 |
POST |
/monitor/logininfor/export |
导出 |
POST |
/monitor/logininfor/remove |
删除 |
POST |
/monitor/logininfor/clean |
清空 |
POST |
/monitor/logininfor/unlock/{loginName} |
账户解锁 |
缓存监控 /monitor/cache
| 方法 |
路径 |
说明 |
GET |
/monitor/cache |
缓存监控页面 |
GET |
/monitor/cache/getNames |
获取缓存名称列表 |
GET |
/monitor/cache/getKeys/{cacheName} |
获取缓存 key 列表 |
GET |
/monitor/cache/getValue/{cacheName}/{cacheKey} |
获取缓存值 |
POST |
/monitor/cache/clearCacheName/{cacheName} |
清空指定缓存名 |
POST |
/monitor/cache/clearCacheKey/{cacheKey} |
清空指定 key |
POST |
/monitor/cache/clearAll |
清空所有缓存 |
5.4 定时任务 /monitor/job
| 方法 |
路径 |
说明 |
GET |
/monitor/job/list |
任务列表 |
POST |
/monitor/job/add |
新增任务 |
POST |
/monitor/job/edit |
修改任务 |
POST |
/monitor/job/remove |
删除 |
POST |
/monitor/job/changeStatus |
启动/暂停 |
POST |
/monitor/job/run |
立即执行一次 |
GET |
/monitor/job/cron |
Cron 生成器页面 |
任务日志 /monitor/jobLog
| 方法 |
路径 |
说明 |
GET |
/monitor/jobLog/list |
调度日志分页 |
POST |
/monitor/jobLog/export |
导出 |
POST |
/monitor/jobLog/remove |
删除 |
POST |
/monitor/jobLog/clean |
清空 |
5.5 代码生成 /tool/gen
| 方法 |
路径 |
说明 |
GET |
/tool/gen/list |
已导入表列表 |
GET |
/tool/gen/db/list |
数据库表列表(可选择导入) |
GET |
/tool/gen/column/list |
某表字段信息 |
POST |
/tool/gen/importTable |
导入表到代码生成器 |
POST |
/tool/gen/createTable |
创建表 |
POST |
/tool/gen/edit |
修改生成配置 |
GET |
/tool/gen/preview/{tableId} |
预览生成代码 |
GET |
/tool/gen/download/{tableName} |
下载代码 ZIP |
GET |
/tool/gen/genCode/{tableName} |
生成代码到本地项目 |
GET |
/tool/gen/synchDb/{tableName} |
同步数据库表结构 |
POST |
/tool/gen/batchGenCode |
批量生成代码 |
5.6 通用功能 /common
| 方法 |
路径 |
说明 |
GET |
/common/download |
文件下载 |
POST |
/common/upload |
单文件上传(参数: file) |
POST |
/common/uploads |
多文件上传 |
GET |
/common/download/resource |
本地资源下载 |
六、数据库表说明
系统管理表 (13张)
| 表名 |
说明 |
sys_user |
用户表 |
sys_dept |
部门表(树形结构) |
sys_post |
岗位表 |
sys_role |
角色表 |
sys_menu |
菜单/权限表(M=目录, C=菜单, F=按钮) |
sys_user_role |
用户-角色关联 |
sys_role_menu |
角色-菜单关联 |
sys_role_dept |
角色-部门数据权限 |
sys_user_post |
用户-岗位关联 |
sys_dict_type |
字典类型 |
sys_dict_data |
字典数据 |
sys_config |
系统参数配置 |
sys_oper_log |
操作日志 |
监控/日志表 (5张)
| 表名 |
说明 |
sys_logininfor |
登录日志 |
sys_user_online |
在线用户记录 |
sys_notice |
通知公告 |
sys_notice_read |
通知已读记录 |
sys_job |
定时任务配置 |
sys_job_log |
定时任务执行日志 |
代码生成表 (2张)
| 表名 |
说明 |
gen_table |
代码生成表配置 |
gen_table_column |
代码生成字段配置 |
七、常见操作指南
新增菜单
- 打开 系统管理 → 菜单管理
- 点击 "新增",选择类型:
- 目录: 作为父级菜单分组(如"系统管理")
- 菜单: 实际页面入口,填写请求地址(如
/system/user)
- 按钮: 页面上的操作按钮(新增/修改/删除),填写权限标识(如
system:user:add)
- 保存后在 角色管理 中给角色分配新菜单权限
新增用户
- 打开 系统管理 → 用户管理
- 点击 "新增",填写登录名、用户姓名、部门、角色、岗位
- 初始密码为
123456,用户首次登录可修改
使用代码生成器
- 打开 系统工具 → 代码生成
- 点击 "导入",选择要生成代码的数据库表
- 点击 "编辑" 可调整字段信息、生成模板
- 点击 "生成代码",可预览或下载 ZIP
- 若选择 "生成到项目",代码会写入对应模块目录
创建定时任务
- 先在项目中编写任务方法(实现
Job 接口或使用 @Scheduled)
- 打开 系统监控 → 定时任务
- 点击 "新增",填写:
- 调用目标字符串: 如
ryTask.ryNoParams
- Cron 表达式: 可使用在线生成器
- 点击状态按钮启动任务
自定义数据权限
- 打开 系统管理 → 角色管理
- 点击 "更多 → 数据权限"
- 选择范围:
- 全部数据权限: 可看所有数据
- 自定数据权限: 只能看指定部门
- 本部门数据权限: 只看自己的部门
- 本部门及以下: 看自己和子部门
- 仅本人: 只能看自己的数据
八、配置参考
| 配置项 |
默认值 |
说明 |
server.port |
80 (生产 8080) |
服务端口 |
ruoyi.name |
RuoYi |
项目名称(显示在页面标题) |
ruoyi.version |
4.8.3 |
版本号 |
ruoyi.demoEnabled |
true |
演示模式(禁止修改敏感数据) |
ruoyi.profile |
D:/ruoyi/uploadPath |
文件上传目录 |
shiro.captchaEnabled |
true |
验证码开关 |
shiro.captchaType |
math |
验证码类型 (math/char) |
shiro.maxSession |
-1 |
最大会话数(-1 不限) |
shiro.session.timeout |
30min |
Session 超时 |
shiro.login.maxRetryCount |
5 |
登录错误锁定次数 |
shiro.login.lockTime |
10min |
锁定时间 |
sys.user.initPassword |
123456 |
新增/重置密码时的初始密码 |
九、注意事项
- 演示模式: 生产部署建议关闭
ruoyi.demoEnabled,否则无法新增/修改/删除系统用户、角色等
- 验证码: 生产环境建议开启,类型可选
math(算术)或 char(字符)
- 文件上传路径: 默认
D:/ruoyi/uploadPath,Linux 服务器需改为 /home/ruoyi/uploadPath 等实际路径
- 数据库密码: 请修改
application-druid.yml 中的数据库密码
- Swagger: 默认
/swagger-ui/index.html,生产环境建议关闭或加权限
- Druid 监控: 默认
/druid/*,账号 ruoyi/123456,生产环境建议改密码