朱杰
2021-05-22 798ffd9065d72d76bb48a69ae91e81a19be8f22e
README.md
@@ -1,19 +1,78 @@
## 修改RuoYi功能
* ORM框架 使用 Mybatis-Plus 简化CRUD
* Bean简化 使用 Lombok 简化 get set toString 等等
* 容器改动 Tomcat 改为 并发性能更好的 undertow
* 代码生成模板 改为适配 Mybatis-Plus 的代码
## 平台简介
* 前端采用Vue、Element UI、Vue-Element-Admin。
* 后端采用Spring Boot、Spring Security、Redis & Jwt。
* 权限认证使用Jwt,支持多终端认证系统。
* 支持加载动态权限菜单,多方式轻松权限控制。
* 高效率开发,使用代码生成器可以一键生成前后端代码。
* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
* 阿里云优惠券:[点我进入](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)  
基于 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功能
### 依赖改动
* 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 模块示例(给不会增加模块的小伙伴做参考)
### 代码改动
* 所有原生功能使用 Mybatis-Plus 与 Lombok 重写
* 增加 IServicePlus 与 BaseMapperPlus 可自定义通用方法
* 代码生成模板 改为适配 Mybatis-Plus 的代码
* 代码生成模板 拆分出 Vo,QueryBo,AddBo,EditBo 等领域对象
* 代码生成模板 增加 文档注解 与 校验注解 简化通用操作
* 项目修改为 maven多环境配置
* 项目配置修改为 application.yml 统一管理
### 其他
* 同步升级 RuoYi-Vue 3.4.0
* 单模块 fast 分支 [RuoYi-Vue-Plus-fast](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/fast/)
## 关注作者(扫码请备注: "加群")
![](https://images.gitee.com/uploads/images/2021/0508/235345_5503356a_1766278.jpeg)
## 重点注意事项
若依文档对事务注解的描述 [关于事务](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类)
* 代码生成选择树表生成即可
关于数据权限
* 参考(用户,角色,部门)列表接口用法
* 从 bo.getParam().get("dataScope") 即可获取数据权限生成的SQL
关于vue与boot整合部署
* [前端静态资源如何整合到后端访问](https://doc.ruoyi.vip/ruoyi-vue/other/faq.html#前端静态资源如何整合到后端访问)
## 内置功能
@@ -32,8 +91,9 @@
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
14. 系统接口:根据业务代码自动生成相关的api接口文档。
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 在线构建器:拖动表单元素生成相应的HTML代码。
17. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器:拖动表单元素生成相应的HTML代码。
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
## 在线体验
@@ -42,45 +102,3 @@
演示地址:http://vue.ruoyi.vip  
文档地址:http://doc.ruoyi.vip
## 演示图
<table>
    <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102616_d94ada2f_1766278.jpeg"/></td>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_016f5bcf_1766278.jpeg"/></td>
    </tr>
    <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102616_f479788d_1766278.jpeg"/></td>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102616_6ec5b078_1766278.jpeg"/></td>
    </tr>
    <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102616_57a03817_1766278.jpeg"/></td>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102616_1077f0e1_1766278.jpeg"/></td>
    </tr>
   <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_117a21e0_1766278.jpeg"/></td>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_4086e6f3_1766278.jpeg"/></td>
    </tr>
    <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_b3c6d70e_1766278.jpeg"/></td>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_bdcfa03d_1766278.jpeg"/></td>
    </tr>
   <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_ad83b775_1766278.jpeg"/></td>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102618_ed9e3ba4_1766278.jpeg"/></td>
    </tr>
   <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_3033dd06_1766278.png"/></td>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_7597a8de_1766278.png"/></td>
    </tr>
    <tr>
        <td><img src="https://images.gitee.com/uploads/images/2020/0523/102617_58ad38a4_1766278.jpeg"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/up-6d73c2140ce694e3de4c05035fdc1868d4c.png"/></td>
    </tr>
</table>
## 若依前后端分离交流群
QQ群: [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) 点击按钮入群。