| | |
| | | ## 平台简介 |
| | | [](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus) |
| | | [](https://github.com/JavaLionLi/RuoYi-Vue-Plus) |
| | | [](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/blob/master/LICENSE) |
| | | [](https://www.jetbrains.com/?from=RuoYi-Vue-Plus) |
| | | <br> |
| | | [](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus) |
| | | []() |
| | | []() |
| | | []() |
| | | []() |
| | | |
| | | 基于 RuoYi-Vue 集成 Mybatis-Plus Lombok Hutool 等便捷开发工具 适配重写相关业务 便于开发 定期与 RuoYi-Vue 同步 |
| | | * 前端开发框架 Vue、Element UI |
| | | * 后端开发框架 Spring Boot、Redis |
| | | * 容器框架 Undertow 基于 Netty 的高性能容器 |
| | | * 权限认证框架 Spring Security、Jwt,支持多终端认证系统 |
| | | * 关系数据库 MySQL 适配 8.X |
| | | * 缓存数据库 Redis 适配 6.X |
| | | * 数据库开发框架 Mybatis-Plus 快速 CRUD 增加开发效率 插件化支持各类需求 |
| | | * 网络框架 Feign、OkHttp3 接口化管理 HTTP 请求 |
| | | * 工具类框架 Hutool、Lombok 减少代码冗余 增加安全性 |
| | | * 监控框架 spring-boot-admin 全方位服务监控 |
| | | * 校验框架 validation 增强接口安全性 严谨性 |
| | | * 文档框架 knife4j 美化接口文档 |
| | | * 代码生成器 一键生成前后端代码 |
| | | RuoYi-Vue-Plus 是基于 RuoYi-Vue 针对 `分布式集群` 场景升级(不兼容原框架) |
| | | |
| | | ## 修改RuoYi功能 |
| | | | 功能介绍 | 使用技术 | 文档地址 | 特性注意事项 | |
| | | |---|---|---|---| |
| | | | 当前框架 | RuoYi-Vue-Plus | [RuoYi-Vue-Plus文档](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages) | 重写RuoYi-Vue全方位升级(不兼容原框架) | |
| | | | satoken分支 | RuoYi-Vue-Plus-satoken | [satoken分支地址](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/satoken/) | 使用satoken重构权限鉴权(仅供学习不推荐上生产) | |
| | | | 单体分支 | RuoYi-Vue-Plus-fast | [fast分支地址](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) | 单体应用结构 | |
| | | | 原框架 | RuoYi-Vue | [RuoYi-Vue官网](http://ruoyi.vip/) | 定期同步需要的功能 | |
| | | | 前端开发框架 | Vue、Element UI | [Element UI官网](https://element.eleme.cn/#/zh-CN) | | |
| | | | 后端开发框架 | SpringBoot | [SpringBoot官网](https://spring.io/projects/spring-boot/#learn) | | |
| | | | 容器框架 | Undertow | [Undertow官网](https://undertow.io/) | 基于 Netty 的高性能容器 | |
| | | | 权限认证框架 | Spring Security、Jwt | [SpringSecurity官网](https://spring.io/projects/spring-security#learn) | 支持多终端认证系统 | |
| | | | 关系数据库 | MySQL | [MySQL官网](https://dev.mysql.com/) | 适配 8.X 最低 5.7 | |
| | | | 缓存数据库 | Redis | [Redis官网](https://redis.io/) | 适配 6.X 最低 4.X | |
| | | | 数据库框架 | Mybatis-Plus | [Mybatis-Plus文档](https://baomidou.com/guide/) | 快速 CRUD 增加开发效率 | |
| | | | 数据库框架 | p6spy | [p6spy官网](https://p6spy.readthedocs.io/) | 更强劲的 SQL 分析 | |
| | | | 多数据源框架 | dynamic-datasource | [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/content) | 支持主从与多种类数据库异构 | |
| | | | 序列化框架 | Jackson | [Jackson官网](https://github.com/FasterXML/jackson) | 统一使用 jackson 高效可靠 | |
| | | | 网络框架 | Feign、OkHttp3 | [Feign官网](https://github.com/OpenFeign/feign) | 接口化管理 HTTP 请求 | |
| | | | Redis客户端 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 支持单机、集群配置 | |
| | | | 分布式限流 | Redisson | [Redisson文档](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | 全局、请求IP、集群ID 多种限流 | |
| | | | 分布式锁 | Lock4j | [Lock4j官网](https://gitee.com/baomidou/lock4j) | 注解锁、工具锁 多种多样 | |
| | | | 分布式幂等 | Lock4j | [Lock4j文档](https://gitee.com/baomidou/lock4j) | 基于分布式锁实现 | |
| | | | 分布式日志 | TLog | [TLog文档](https://yomahub.com/tlog/docs) | 支持跟踪链路日志记录、性能分析、链路排查 | |
| | | | 分布式任务调度 | Xxl-Job | [Xxl-Job官网](https://www.xuxueli.com/xxl-job/) | 高性能 高可靠 易扩展 | |
| | | | 文件存储 | Minio | [Minio文档](https://docs.min.io/) | 本地存储 | |
| | | | 文件存储 | 七牛、阿里、腾讯 | [OSS使用文档](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4359146&doc_id=1469725) | 云存储 | |
| | | | 监控框架 | SpringBoot-Admin | [SpringBoot-Admin文档](https://codecentric.github.io/spring-boot-admin/current/) | 全方位服务监控 | |
| | | | 校验框架 | Validation | [Validation文档](https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/) | 增强接口安全性、严谨性 | |
| | | | Excel框架 | Alibaba EasyExcel | [EasyExcel文档](https://www.yuque.com/easyexcel/doc/easyexcel) | 性能优异 扩展性强 | |
| | | | 文档框架 | Knife4j | [Knife4j文档](https://doc.xiaominfo.com/knife4j/documentation/) | 美化接口文档 | |
| | | | 工具类框架 | Hutool、Lombok | [Hutool文档](https://www.hutool.cn/docs/) | 减少代码冗余 增加安全性 | |
| | | | 代码生成器 | 适配MP、Knife4j规范化代码 | [Hutool文档](https://www.hutool.cn/docs/) | 一键生成前后端代码 | |
| | | | 部署方式 | Docker | [Docker文档](https://docs.docker.com/) | 容器编排 一键部署业务集群 | |
| | | | 国际化 | SpringMessage | [SpringMVC文档](https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc) | Spring标准国际化方案 | |
| | | |
| | | ### 依赖改动 |
| | | ## 参考文档 |
| | | |
| | | * ORM框架 使用 Mybatis-Plus 3.4.2 简化CRUD (不支持主子表) |
| | | * Bean简化 使用 Lombok 简化 get set toString 等等 |
| | | * 容器改动 Tomcat 改为 并发性能更好的 undertow |
| | | * 分页移除 pagehelper 改为 Mybatis-Plus 分页 |
| | | * 升级 swagger 为 knife4j |
| | | * 集成 Hutool 5.X 并重写RuoYi部分功能 |
| | | * 集成 Feign 接口化管理 Http 请求(如三方请求 支付,短信,推送等) |
| | | * 移除 自带服务监控 改为 spring-boot-admin 全方位监控 |
| | | * 增加 demo 模块示例(给不会增加模块的小伙伴做参考) |
| | | * 增加 redisson 支持分布式锁 功能更强大 |
| | | 使用框架前请仔细阅读文档重点注意事项 |
| | | <br> |
| | | >[初始化项目 必看](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/关于初始化项目?sort_id=4164117) |
| | | >>[https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/关于初始化项目?sort_id=4164117](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/关于初始化项目?sort_id=4164117) |
| | | > |
| | | >[部署项目 必看](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/关于应用部署?sort_id=4219382) |
| | | >>[https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/关于应用部署?sort_id=4219382](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/关于应用部署?sort_id=4219382) |
| | | > |
| | | >[参考文档 Wiki](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages) |
| | | >>[https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages) |
| | | |
| | | ### 代码改动 |
| | | ## 软件架构图 |
| | | |
| | | * 所有原生功能使用 Mybatis-Plus 与 Lombok 重写 |
| | | * 增加 IServicePlus 与 BaseMapperPlus 可自定义通用方法 |
| | | * 代码生成模板 改为适配 Mybatis-Plus 的代码 |
| | | * 代码生成模板 拆分出 Vo,QueryBo,AddBo,EditBo 等领域对象 |
| | | * 代码生成模板 增加 文档注解 与 校验注解 简化通用操作 |
| | | * 项目修改为 maven多环境配置 |
| | | * 项目配置修改为 application.yml 统一管理 |
| | | * 数据权限修改为 适配支持单表、多表 |
| | |  |
| | | |
| | | ## 贡献代码 |
| | | |
| | | 欢迎各路英雄豪杰 `PR` 代码 请提交到 `dev` 开发分支 统一测试发版 |
| | | |
| | | 框架定位为 `通用后台管理系统(分布式集群强化)` 原则上不接受业务 `PR` |
| | | |
| | | ### 其他 |
| | | |
| | | * 同步升级 RuoYi-Vue 3.5.0 |
| | | * 同步升级 RuoYi-Vue |
| | | * GitHub 地址 [RuoYi-Vue-Plus-github](https://github.com/JavaLionLi/RuoYi-Vue-Plus) |
| | | * 单模块 fast 分支 [RuoYi-Vue-Plus-fast](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/) |
| | | * satoken 分支 [RuoYi-Vue-Plus-satoken](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/satoken/) |
| | | * 用户扩展项目 [扩展项目列表](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4478302&doc_id=1469725) |
| | | |
| | | ## 关注作者(扫码请备注: "加群") |
| | | |
| | |  |
| | | ## 加群与捐献 |
| | | >[加群与捐献](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/加群与捐献?sort_id=4104598) |
| | | >>[https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/加群与捐献?sort_id=4104598](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/加群与捐献?sort_id=4104598) |
| | | |
| | | ## 捐献作者 |
| | | 作者为兼职做开源,平时还需要工作,如果帮到了您可以请作者吃个盒饭 |
| | | <img src="https://images.gitee.com/uploads/images/2021/0525/101654_451e4523_1766278.jpeg" width="300px" height="450px" /> |
| | | <img src="https://images.gitee.com/uploads/images/2021/0525/101713_3d18b119_1766278.jpeg" width="300px" height="450px" /> |
| | | |
| | | ## 重点注意事项 |
| | | ## 业务功能 |
| | | |
| | | 若依文档对事务注解的描述 [关于事务](https://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86) 以下对多数据源事务做补充: |
| | | * 同一个事务下是无法切换数据源的 |
| | | * 禁止 父方法使用 @Transactional 创建事务 子方法使用 @DataSource 切换数据源 |
| | | * 正确用法: 子方法单独创建事务 或 父方法使用 @Transactional(propagation = Propagation.REQUIRES_NEW) 为所有子方法创建新事务 |
| | | |
| | | 关于如何使用Tomcat |
| | | * 查看ruoyi-framework模块的pom.xml文件,根据注释更改依赖 |
| | | * 查看ruoyi-admin模块中的application.yml文件,根据注释更改配置 |
| | | |
| | | 关于如何创建新模块 |
| | | * 参考ruoyi-demo模块 |
| | | * 需要改动: 父pom 与 admin模块pom |
| | | |
| | | 关于树表生成 |
| | | * 直接在mysql表中 添加 parentId orderNum 等字段(根据需要参考 TreeEntity类) |
| | | * 代码生成选择树表生成即可 |
| | | |
| | | 关于数据权限 |
| | | * 创建表 需预留 dept_id 字段 如需用户权限 还需预留 user_id 字段 |
| | | * 支持 Mybatis-Plus 方式注入 参考 demo 模块用法(需导入 test.sql 文件) |
| | | * 支持 XML 方式注入 参考 system 模块用法 |
| | | |
| | | 关于vue与boot整合部署 |
| | | * [前端静态资源如何整合到后端访问](https://doc.ruoyi.vip/ruoyi-vue/other/faq.html#前端静态资源如何整合到后端访问) |
| | | |
| | | 关于修改包名 |
| | | * 将文件夹全部修改为 com.xxx |
| | | * 使用IDEA全局替换 com.ruoyi 替换为 com.xxx |
| | | * 严禁手动修改 |
| | | |
| | | ## 内置功能 |
| | | |
| | | 1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 |
| | | 2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 |
| | | 3. 岗位管理:配置系统用户所属担任职务。 |
| | | 4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 |
| | | 5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 |
| | | 6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 |
| | | 7. 参数管理:对系统动态配置常用参数。 |
| | | 8. 通知公告:系统通知公告信息发布维护。 |
| | | 9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 |
| | | 10. 登录日志:系统登录日志记录查询包含登录异常。 |
| | | 11. 在线用户:当前系统中活跃用户状态监控。 |
| | | 12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 |
| | | 13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 |
| | | 14. 系统接口:根据业务代码自动生成相关的api接口文档。 |
| | | 15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 |
| | | 16. 缓存监控:对系统的缓存信息查询,命令统计等。 |
| | | 17. 在线构建器:拖动表单元素生成相应的HTML代码。 |
| | | 18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 |
| | | | 功能 | 介绍 | |
| | | |---|---| |
| | | | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置。 | |
| | | | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 | |
| | | | 岗位管理 | 配置系统用户所属担任职务。 | |
| | | | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等。 | |
| | | | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分。 | |
| | | | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护。 | |
| | | | 参数管理 | 对系统动态配置常用参数。 | |
| | | | 通知公告 | 系统通知公告信息发布维护。 | |
| | | | 操作日志 | 系统正常操作日志记录和查询;系统异常信息日志记录和查询。 | |
| | | | 登录日志 | 系统登录日志记录查询包含登录异常。 | |
| | | | 文件管理 | 系统文件上传、下载等管理。 | |
| | | | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志。 | |
| | | | 代码生成 | 前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 | |
| | | | 系统接口 | 根据业务代码自动生成相关的api接口文档。 | |
| | | | 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等。 | |
| | | | 缓存监控 | 对系统的缓存信息查询,命令统计等。 | |
| | | | 在线构建器 | 拖动表单元素生成相应的HTML代码。 | |
| | | | 连接池监视 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 | |
| | | | 使用案例 | 系统的一些功能案例 | |
| | | |
| | | ## 演示图例 |
| | | |
| | |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | |
| | | ## 在线体验 |
| | | |
| | | - admin/admin123 |
| | | - 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 |
| | | |
| | | 演示地址:http://vue.ruoyi.vip |
| | | 文档地址:http://doc.ruoyi.vip |