芋道 ruoyi-vue-pro v1.0.0 正式版发布!肝了小半年,不容易~
项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
更新说明:
第一个版本,基于 RuoYi-Vue 重构,主要是三个方面:
- 代码的重构
- 技术选型的调整
- 后台功能的新增
因此,v1.0.0
的更新日志,分成这三方面来写。
代码的重构
- 调整整体代码结构,将多个 Maven Module 合并为单个,使用 Java package 进行拆分隔离,如 图 所示。原因是:随着业务逻辑的逐步复杂,多个 Maven Module 的依赖关系的管理,会是一个很大的问题。
- 拆分 framework 为多个 Maven Module,按照 Web、Security、MyBatis、Redis 等不同组件,进行封装与拓展。
- 基于 JUnit5 与 Mockito,实现单元测试,保证功能的正确性,与代码的可维护性。一直自动化,一直爽!
- 增加 SpringBoot 多环境的配置文件,提供完善的 deploy.sh 部署脚本,以及 Jenkins 部署教程。
- 优化 Spring Security 实现权限的代码,提升可读性和维护性。
- 增加本地缓存(菜单、角色、数据字典等等),提升性能。通过 Redis 订阅发布,实现缓存的实时刷新。
- 增加 VO 类,作为 API 接口的响应对象,避免数据库实体与前端的直接耦合。
- 优化 操作日志,支持读取 Swagger 作为日志的内容。
- 优化 定时任务,支持执行失败的重试,更完善的执行日志。
- 优化 codegen 代码生成器,在原先生成 Controller、Service、Mapper、数据库实体、Vue 代码的基础上,额外生成 VO、单元测试的代码。
- 调整文件改用 数据库 存储,而不是文件系统。原因是,项目在部署多个服务节点时,文件需要做同步。未来,会增加 aliyun、七牛云等存储云服务。
- 去除原有数据库的连表查询、递归查询,改为单表操作的方式,多次读取 + 内存拼接。
- 优化 Java 代码的格式,解决 IDEA 代码告警的问题。
后台功能的新增
- 增加 API 访问与异常日志,方便排查线上 API 的问题。
- 增加 全局错误码,统一业务异常的管理。管理后台会支持错误码的管理,支持提示文案的可配置化。
- 增加 短信模块,提供短信渠道、短息模板、短信日志的管理,对接 aliyun、云片等主流短信平台。
- 增加 Redis Key 的管理,知道项目中使用到的 Redis Key 的格式、数据类型、过期时间、描述等等信息。
技术选型的调整
- 将 Spring Boot 版本,从 2.1.3 升级到 2.4.5 最新。
- 增加 bom 文件,统一 Maven 的依赖管理。
- 引入 MyBatis Plus 组件,简化 MyBatis 使用,提升开发效率。
- 引入 Redisson 组件,作为 Redis 的客户端,提供更强大的 Redis 操作。
- 基于 Redis 实现分布式消息队列的功能。接入 Redis Pub/Sub 实现广播消费,接入 Redis Stream 实现集群消费。
- 去除 fastjson,统一使用 Jackson 作为 JSON 库,老爆安全漏洞的悲伤。
- 引入 MapStruct 组件,实现数据库实体与 VO 类之间的转换。
- 引入 Lombok 组件,生成 setter、getter 等常用方法,去除冗余代码。
- 引入 Spring Async 功能,实现异步任务。例如说,异步记录 API 访问日志、管理员操作日志等等。
- 魔改 Apollo 组件,接入本地数据库,实现内嵌的配置中心。通俗的说,我们可以将原本添加到
application.yaml
的配置项,改为添加到数据库中,项目启动会进行读取。 - 引入 Hutool 组件,去除大量重复的工具类,也避免原本 Util 存在一些 bug 的问题。
- 引入 Screw 组件,实现数据库文档的生成,虽然好像现在用途较少。
- 引入 EasyExcel,提供 Excel 的导入与导出的功能。
- 实现 Idempotent 组件,实现幂等的功能,可以用来解决 HTTP 重复请求的问题。
- 引入 Lock4J,实现声明式的分布式锁的功能。虽然 Redisson 内置了分布式锁的功能,但是通过注解声明一个
@Lock4j
注解的使用方式,更加便利,且满足绝大多数场景。 - 去除原有的服务监控,使用 SpringBoot Admin 替代,提供更完整的监控能力。
- 引入 SkyWalking 组件,实现链路追踪和日志服务的功能。通过链路追踪,我们可以看到一个 API 请求涉及到的 MySQL、Redis 等操作;通过日志服务,我们可以方便的看到每个服务实例的日志。
- 引入 Resilience4j 组件,实现限流、熔断等功能,保证服务的稳定性。
- 引入 Knife4j,美化接口文档。原本所有 API 接口文档是缺失的,已经全部补全,可见 http://api-dashboard.yudao.iocoder.cn/doc.html 地址。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux Mint 18.x 生命周期结束
Linux Mint 项目负责人 Clem Lefebvre 宣布 Linux Mint 18 系列(18, 18.1, 18.2 和 18.3)已正式 EOL,后续将不会再获得任何更新和技术支持。 Linux Mint 18发布于五年前,基于 Ubuntu 16.04 LTS,后者也即将 EOL。 Clem Lefebvre 提供了两个升级方案,一是全新安装 Linux Mint 20.1,这是目前的最新版本,并且会保持更新至2025年;另一个方案是升级到2023年之前受支持的 Linux Mint 19.3,步骤如下: 将 18、18.1 或 18.2 升级到 18.3:https://blog.linuxmint.com/?p=3462 将 18.3 升级到 19:https://blog.linuxmint.com/?p=3615 将 19 升级到 19.3:https://blog.linuxmint.com/?p=3838 由于 18.3 到 19 的更新是大版本升级,所以会花费更多的时间。另外,无论是全新安装还是补丁更新,切记一定要备份好数据,以便出现问题时可及时恢复。
- 下一篇
RabbitMQ 3.8.15 发布,Erlang 编写的 AMQP 开源实现
RabbitMQ 3.8.15 已发布,RabbitMQ 是一个 Advanced Message Queuing Protocol(AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 编写而成,因此它也继承了这些优点。 Core Server Bug 修复: 在某些配置中,Quorum 队列没有像预期的那样频繁地保留快照,这导致没有有效积压队列的磁盘空间使用峰值大大增加; Quorum 队列名称被无意中限制:虚拟主机和实际队列名称的长度被限制为 254 个字符。名字更长的 Quorum 队列未能被声明; 删除 Quorum 队列会留下它的一些内部指标数据; 客户端目标地址现在是根据代理协议设置获得的; 增强: 现在默认情况下,consume 消息但不确认消息的 Quorum 队列使用方将有 15 分钟的确认超时时间。如有必要,操作员可以增加超时时间; 这样的使用方会延迟甚至阻止磁盘上的数据压缩,这可能会使一个节点的磁盘空间比预期的要早得多提前用完。 通道拦截器现在可以返回通道级别的异常。 CLI 工具 Bug 修正: rabbitmq-diagnostics st...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池