RuoYi-Vue-Plus 完整部署与快速上手指南:从克隆到登录后台
【免费下载链接】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 是重写 RuoYi-Vue 的分布式多租户后台管理系统,集成 Sa-Token、Mybatis-Plus、WarmFlow 工作流。跟完本文做一次 RuoYi-Vue-Plus 部署,你得到的是一套能登录的管理后台:用户、角色、菜单、字典、代码生成、流程审批全部可用,接口文档页面同步打开,Redis 里实时记录着每个在线会话。
🖥️ 部署效果预览
跑起来后你能访问三个地址:
- 后端接口:
http://localhost:8080(默认端口 8080,Jetty 容器) - 接口文档:
http://localhost:8080/api-docs,按"演示模块/系统模块/工作流模块"分组展示全部 API - 前端界面:官方前端项目 plus-ui 单独部署后指向 8080,默认账号
admin/ 密码admin123(带数学验证码登录)
后端支持多实例同时启动(Docker 编排里就有ruoyi-server1、ruoyi-server2两个实例,分别占 8080、8081 端口),同一账号在两台机器上登录互不冲突,这就是"分布式会话"的实际形态。
📋 开工前体检
对照下表确认环境,缺哪项补哪项:
| 依赖 | 版本要求 | 是否必须 | 用途 |
|---|---|---|---|
| JDK | 21 及以上 | 是 | 运行与编译,6.0.0 版已不支持 JDK 8 |
| Maven | 3.6+ | 是 | 构建,仓库自带mvnw可免装 |
| MySQL | 5.7+ / 8.x | 是 | 主数据库(也支持 Oracle、PostgreSQL、SQLServer) |
| Redis | 6.0+ | 是 | 缓存、分布式会话、分布式锁(Lock4j/Redisson) |
| Node.js | 14+ | 可选 | 本地跑前端 plus-ui 时需要 |
| Docker | 可选 | 可选 | 用 script/docker/docker-compose.yml 一键拉起全套环境 |
🚀 快速通道:最短路径把服务跑起来
第 1 步:拉代码
git clone https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus cd RuoYi-Vue-Plus做完的标志:目录里能看到ruoyi-admin、ruoyi-common、ruoyi-modules、ruoyi-extend四个模块。
第 2 步:构建打包
mvn clean package -DskipTests做完的标志:终端出现BUILD SUCCESS,且ruoyi-admin/target/下生成了可执行 jar。
第 3 步:初始化数据库
建库并导入脚本(库名必须叫ry-vue,与默认配置一致):
mysql -uroot -p -e "CREATE DATABASE `ry-vue` DEFAULT CHARACTER SET utf8mb4" mysql -uroot -p `ry-vue` < script/sql/ry_vue.sql做完的标志:show tables;能看到sys_user、sys_menu、sys_role等 20 多张表。用到定时任务或工作流时,再把 script/sql/ 里的ry_job.sql、ry_workflow.sql一并导入。
第 4 步:直接启动
java -jar ruoyi-admin/target/ruoyi-admin.jar开发默认配置读的是 ruoyi-admin/src/main/resources/application-dev.yml:MySQL 走localhost:3306/ry-vue(root/root),Redis 密码ruoyi123。做完的标志:日志出现Started DromaraApplication,浏览器打开http://localhost:8080/api-docs能列出全部接口分组。
🏭 正式环境改造:数据库、缓存与关键配置
正式部署只改这几处,都在 ruoyi-admin/src/main/resources/application-dev.yml(生产可复制到 application-prod.yml 同结构位置):
数据源,把地址、账号密码换成你的:
spring.datasource.dynamic.datasource.master: url: jdbc:mysql://你的地址:3306/ry-vue?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8 username: 你的账号 password: 你的密码Redis,密码必须改,生产建议开启认证:
spring.data.redis: host: 你的redis地址 port: 6379 password: 你的密码另外两处按需检查:ruoyi-admin/src/main/resources/application.yml 里的sa-token.jwt-secret-key换掉示例值;captcha.enable生产环境保持true。数据库为 MySQL、Oracle、PostgreSQL、SQLServer 时,参考对应目录的脚本:script/sql/oracle/、script/sql/postgres/、script/sql/sqlserver/。
🧩 企业级特性开关
- 多租户:租户隔离依赖 Mybatis-Plus 的
TenantLineInnerInterceptor插件,注册点在 ruoyi-common/ruoyi-common-mybatis 的MybatisPlusConfig。当前仓库未携带租户模块与sys_tenant表,需要多租户隔离的团队按官方文档引入对应扩展包后,在插件链里启用即可生效。 - 分布式会话:Sa-Token 的会话数据默认落 Redis,无需额外开关。行为由 ruoyi-admin/src/main/resources/application.yml 中
sa-token.is-concurrent(是否允许同账号并发登录)与is-share(多端是否共用一个 token)控制。生效条件:所有实例连同一个 Redis,会话即在集群间自动同步。 - 工作流:
warm-flow.enabled: true(默认开启),审批流设计器 UI 随之可用;snail-job、snail-ai客户端默认enabled: false,需要分布式任务调度或 AI 能力时再打开并部署对应 Server(见 ruoyi-extend/)。
✅ 上线前体检:冒烟测试清单
- 启动日志无 ERROR,
Started DromaraApplication正常出现 - 用
admin/admin123登录,数学验证码校验通过 - 进"用户管理"新建一个测试用户,再进"角色管理"分配菜单,验证写入
- 切换新用户登录,旧账号的数据权限范围是否符合预期(读权限验证)
- "登录日志""操作日志"能看到刚才的记录(数据库读写闭环)
- "在线用户"页面能看到两个登录会话,强制踢出其中一个,被踢端刷新后提示 token 失效(分布式会话验证)
http://localhost:8080/api-docs各分组接口可点开
全部通过,就可以交付使用了。
⚡ 性能调优(进阶可选)
- 数据库连接池(Hikari,dev 默认值在 application-dev.yml):
maxPoolSize默认 20,按CPU核数 × 2 + 磁盘数估算上调;minIdle建议与最大值一致避免抖动;maxLifetime保持 30 分钟,小于 MySQL 的wait_timeout。 - Jetty 线程:application.yml 中
server.jetty.threads.max控制最大并发任务数,SSE 长连接会持续占用槽位,按在线用户量调整,默认 20000 偏大,中小站点收到几千即可。 - JVM 参数:8GB 内存机器建议
-Xms2g -Xmx4g,用java -Xms2g -Xmx4g -jar启动。 - 批量写入:JDBC URL 已带
rewriteBatchedStatements=true,批量操作性能提升明显,保持即可。
🧯 救火手册:高频故障速查
- 现象:启动报
Communications link failure/ 连接拒绝。原因:MySQL 没起、库名不是ry-vue或密码不对。解法:确认mysql服务在跑,库名拼写一致,配置里账号密码与mysql -u -p手动登录验证一致。 - 现象:报 Redis 认证错误
WRONGPASS或连接超时。原因:Redis 开了密码但配置还是ruoyi123,或端口被防火墙挡了。解法:把spring.data.redis.password改成实际密码,redis-cli ping先测通。 - 现象:8080 端口被占用,进程起不来。原因:本机已有服务占端口。解法:启动加参数
-Dserver.port=8081换端口,前端代理地址同步改。 - 现象:
mvn clean package报 Java 版本或编译错误。原因:本机是 JDK 8/17,项目要求 JDK 21。解法:java -version确认版本,换成 21 再执行。 - 现象:登录页报"获取验证码失败"或接口 500。原因:库没导全(缺
sys_client等表)。解法:重新核对ry_vue.sql导入是否完整,select count(*) from sys_client;应大于 0。
RuoYi-Vue-Plus 部署完成后,从本地验证到多实例生产部署的改造路径已经打通。遇到多租户配置、性能调优或故障排查的新问题,回到上面的开关清单和救火手册对照处理即可。
【免费下载链接】RuoYi-Vue-Plus多租户后台管理系统 重写RuoYi-Vue所有功能 集成 Sa-Token、Mybatis-Plus、WarmFlow、SpringDoc、Hutool、OSS 定期同步项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考