RuoYi-Vue-Plus 多租户后台管理系统:从入门到部署的完整指南

发布时间:2026/10/21 11:13:26
RuoYi-Vue-Plus 多租户后台管理系统:从入门到部署的完整指南
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 是一个面向分布式集群场景重写的多租户后台管理系统把 Sa-Token 权限认证、Mybatis-Plus 数据权限、字段级加密这些企业级能力全部内置开发者只写业务。它的模块拆得很干净公共能力都能单独引入别的项目复用。一分钟速览RuoYi-Vue-Plus 技术栈一句话定位重写 RuoYi-Vue 全部功能、针对分布式集群升级的后端框架不兼容原框架后端 6.0.0 版本基于 Spring Boot 4.1.0 JDK 21。领域选型作用核心框架Spring Boot 4.1.0 JDK 21应用底座支持虚拟线程开关Web 容器JettyNetty 内核高性能 HTTP 服务SSE/WebSocket 友好权限认证Sa-Token 1.45.0登录、角色/权限校验、JWT 令牌数据持久层Mybatis-Plus 3.5.17分页、乐观锁、数据权限 SQL 改写缓存与锁Redisson 4.6.1 Lock4j分布式缓存、分布式锁工作流Warm-Flow 1.8.9审批流、转办/委派/会签定时任务SnailJob 2.0.2分片、重试、DAG 任务流接口文档SpringDoc 3.0.3基于 JavaDoc 注释零注解生成项目地图三大层模块怎么分工仓库按入口 / 公共 / 业务三层切分配置也按同样思路分层入口层ruoyi-admin唯一可启动的 Web 工程启动类 DromaraApplication.java 用 BufferingApplicationStartup 记录启动性能。登录相关代码都在这里——AuthController加 Password、Sms、Email、Social、Xcx 五个认证策略实现前端要加登录方式就在这个包里扩展。接口层ruoyi-api跨模块调用只依赖这一层的 DTO 和 Service 接口UserDTO、WorkflowService 等避免模块互相注入造成的耦合。公共能力层ruoyi-common25 个左右子模块encrypt、mybatis、redis、satoken、web、push、mcp、liteflow……每个都是独立可引用的 starter别的项目直接引 pom 即可复用。业务层ruoyi-modulesruoyi-system 系统管理、ruoyi-gen 代码生成、ruoyi-job 调度、ruoyi-workflow 工作流、ruoyi-demo 示例、ruoyi-ai 智能助手。扩展服务ruoyi-extendSpring Boot Admin 监控中心、SnailJob Server、Snail AI Server可独立进程部署。配置分两层ruoyi-admin/src/main/resources/application.yml放全局配置Sa-Token、加解密、XSS、消息推送、Warm-Flowapplication-dev.yml/application-prod.yml放环境相关配置数据源、Redis、邮件、短信Maven 的 local/dev/prod 三个 profile 决定激活哪个dev 是默认激活的。最短上手路径5 步跑通 RuoYi-Vue-Plus系统要求JDK 21、Maven 3.6、MySQLcompose 用 8.4.9、Redis密码必填。克隆仓库git clone https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus建库导入脚本create database ry-vue然后依次导入 script/sql/ 下的ry_vue.sql、ry_workflow.sql、ry_job.sql改ruoyi-admin/src/main/resources/application-dev.ymlMySQL 账号默认 root/root、Redis 密码默认 ruoyi123打包./mvnw clean package -DskipTests启动java -jar ruoyi-admin/target/ruoyi-admin.jar服务跑在 8080 端口接口文档由 SpringDoc 自动生成懒人路线script/docker/docker-compose.yml 一键拉起 MySQL、Redis、MinIO、Nginx、两台 8080/8081 应用节点、监控中心、SnailJob 和 Snail AI 服务。核心机制拆解三个值得吃透的实现Sa-Token 认证鉴权策略模式换登录方式解决什么问题Spring Security 配置繁琐、扩展性差团队往往在权限体系上重复造轮子。怎么做到的Sa-Token 承担令牌管理——token-name: Authorization、is-concurrent: true允许同账号并发登录密码错误超过maxRetryCount: 5次锁定lockTime: 10分钟。登录入口统一走策略模式SysLoginService按客户端类型分发到五个IAuthStrategy实现新增扫码登录只需加一个实现类。授权侧用注解表达角色与权限校验支持AND/OR组合表达式不用手写判断。开发时要注意给 Controller 方法挂SaCheckPermission即可控权限security.excludes里排除的公开路径要自己评估别把业务接口随手加进去。字段级加密与接口传输加密数据落库不打码不够解决什么问题手机号、身份证明文落库请求体在网关日志里裸奔。怎么做到的字段级——ruoyi-common-encrypt提供EncryptField注解配合 MyBatis 拦截器存取数据时自动加解密AlgorithmType 支持 BASE64、AES、RSA、SM2、SM4 五种算法mybatis-encryptor配置区设enable: true并填对称密钥或公私钥后启用接口级——api-decrypt默认enabled: true每次请求用动态 AES 秘钥加密 body前端拿encrypt-key头标识协商RSA 公私钥在配置里完成交换。开发时要注意默认公私钥是给演示用的上线前必须换成自己的密钥对且前后端要同步更换。数据权限注解一行搞定按部门隔离解决什么问题只能看本部门数据这类行级隔离手写 if 判断容易漏。怎么做到的PlusDataPermissionInterceptor作为 Mybatis-Plus 拦截器链的第一环运行时分析并拼接 SQL 实现无感过滤Mapper 上配置DataPermission注解条件即可支持部门、角色之外的自定义维度确实需要全量数据时可用DataPermissionIgnoreContext显式放行。开发要注意的是拦截器链顺序是数据权限→分页→乐观锁自定义 SQL 改写类插件要插在前面否则会基于未隔离的数据算分页。工程落地调优参数与容器化部署可直接照抄的几个调优点Jetty 线程server.jetty.threads.max默认 20000注释里明确这是虚拟线程开启后的最大并发任务数SSE、WebSocket 等长连接持续占槽位按在线用户量和请求峰值调整别盲目放大。HikariCP 连接池dev 配置里maxPoolSize: 20、minIdle: 10、connectionTimeout: 30000JDBC URL 已带rewriteBatchedStatementstrue提升批量写入性能生产按库的 max_connections 反推池大小。JVMruoyi-admin/Dockerfile 基于bellsoft/liberica-openjdk-rocky:21.0.12-cds固定用-XX:UseZGC -XX:HeapDumpOnOutOfMemoryError可追加JAVA_OPTS调堆。集群部署compose 里 ruoyi-server1/server2 通过SERVER_PORT8080/8081区分SnailJob、Snail AI 端口随2${server.port}、3${server.port}自动漂移加节点只需复制一份服务改端口所有服务network_mode: host跨机部署前先确认端口规划。踩坑速查7 个高频问题连 Redis 报认证失败 → dev 配置强制要密码 → 按真实环境填spring.data.redis.password配置完全不生效 → profile 默认 dev → 生产用-Pprod打包加新数据源启动报错 → dynamic-datasource 严格模式匹配不到即抛异常 → 检查数据源名与DS注解是否一致多机集群主键冲突 → 主键策略是雪花 IDASSIGN_ID→ 确认多节点主机名/网卡信息不重复并发上不去、线程占满 → SSE/WebSocket 长连接占用 Jetty 任务槽位 → 调整jetty.threads.max或改短连接超时富文本保存被拦 → XSS 过滤默认开启 → 参照xss.excludeUrls精准排除接口接口报解密失败 → 全局接口加密默认开启 → 前端按api-decrypt配置实现加解密并更换密钥对选型收口适合谁要快速交付企业级管理后台的团队想复用某个公共能力加密、Excel、推送、MCP而不自建的项目多机部署 审批流 分布式任务是硬需求的场景。别硬套只需要单库单机的轻量后台可看官方提到的 Single 精简版思路对框架二次改造能力不足的团队别动 MybatisPlusConfig 拦截器链风险高。下一步先看 README.md 里与 RuoYi 的差异对照表再读 application.yml 全文理解每个开关部署细节以 script/docker/ 为蓝本。【免费下载链接】RuoYi-Vue-Plus多租户后台管理系统 重写RuoYi-Vue所有功能 集成 Sa-Token、Mybatis-Plus、WarmFlow、SpringDoc、Hutool、OSS 定期同步项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考