ruoyi-vue-pro 开发指南 ruoyi-vue-pro 开发指南
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
  • 运维手册
  • 前端手册 Vue 2.x
  • 前端手册 Vue 3.x
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben(ant-design-vue) (opens new window)
  • Vue2 + element-ui (opens new window)
微服务版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
  • 运维手册
  • 前端手册 Vue 2.x
  • 前端手册 Vue 3.x
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben(ant-design-vue) (opens new window)
  • Vue2 + element-ui (opens new window)
微服务版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 【v1.9.0】2023-12-01
  • 【v1.8.3】2023-10-24
  • 【v1.8.2】2023-09-24
  • 【v1.8.1】2023-09-04
  • 【v1.8.0】2023-07-27
  • 【v1.7.3】2023-05-29
  • 【v1.7.2】2023-04-19
  • 【v1.7.1】2023-03-05
  • 【v1.7.0】2023-01-30
  • 【v1.6.6】2023-01-05
  • 【v1.6.5】2022-12-01
  • 【v1.6.4】2022-08-22
  • 【v1.6.3】2022-07-29
  • 【v1.6.2】2022-06-05
  • 【v1.6.1】2022-03-21
  • 【v1.6.0】2022-03-10
  • 【v1.5.1】2022-02-28
  • 【v1.5.0】2022-02-17
  • 【v1.4.0】2022-02-04
  • 【v1.3.0】2022.01.24
  • 【v1.2.0】2021.12.15
  • 【v1.1.0】2021.10.25
  • 【v1.0.0】2021.05.03
    • 初始版本
      • 代码的重构
      • 后台功能的新增
      • 技术选型的调整
  • 更新日志
芋道源码
2022-03-07
目录

【v1.0.0】2021.05.03

# 初始版本

第一个版本,基于 RuoYi-Vue (opens new window) 重构,主要是三个方面:

  • 代码的重构
  • 技术选型的调整
  • 后台功能的新增

因此,v1.0.0 的更新日志,分成这三方面来写。

# 代码的重构

  • 调整整体代码结构,将多个 Maven Module 合并为单个,使用 Java package 进行拆分隔离,如 图 (opens new window) 所示。原因是:随着业务逻辑的逐步复杂,多个 Maven Module 的依赖关系的管理,会是一个很大的问题。
  • 拆分 framework (opens new window) 为多个 Maven Module,按照 Web (opens new window)、Security (opens new window)、MyBatis (opens new window)、Redis (opens new window) 等不同组件,进行封装与拓展。
  • 基于 JUnit5 (opens new window) 与 Mockito (opens new window),实现单元测试,保证功能的正确性,与代码的可维护性。一直自动化,一直爽!
  • 增加 SpringBoot 多环境的配置文件,提供完善的 deploy.sh (opens new window) 部署脚本,以及 Jenkins 部署教程 (opens new window)。
  • 优化 Spring Security (opens new window) 实现权限的代码,提升可读性和维护性。
  • 增加本地缓存(菜单、角色、数据字典等等),提升性能。通过 Redis 订阅发布,实现缓存的实时刷新。
  • 增加 VO (opens new window) 类,作为 API 接口的响应对象,避免数据库实体与前端的直接耦合。
  • 优化 操作日志 (opens new window),支持读取 Swagger 作为日志的内容。
  • 优化 定时任务 (opens new window),支持执行失败的重试,更完善的执行日志。
  • 优化 codegen (opens new window) 代码生成器,在原先生成 Controller、Service、Mapper、数据库实体、Vue 代码的基础上,额外生成 VO、单元测试的代码。
  • 调整文件改用 数据库 (opens new window) 存储,而不是文件系统。原因是,项目在部署多个服务节点时,文件需要做同步。未来,会增加阿里云、七牛云等存储云服务。
  • 去除原有数据库的连表查询、递归查询,改为单表操作的方式,多次读取 + 内存拼接。
  • 优化 Java 代码的格式,解决 IDEA 代码告警的问题。

# 后台功能的新增

  • 增加 API 访问 (opens new window)与异常 (opens new window)日志,方便排查线上 API 的问题。
  • 增加 全局错误码 (opens new window),统一业务异常的管理。管理后台会支持错误码的管理,支持提示文案的可配置化。
  • 增加 短信模块 (opens new window),提供短信渠道、短息模板、短信日志的管理,对接阿里云、云片等主流短信平台。
  • 增加 Redis Key (opens new window) 的管理,知道项目中使用到的 Redis Key 的格式、数据类型、过期时间、描述等等信息。

# 技术选型的调整

  • 将 Spring Boot 版本,从 2.1.3 升级到 2.4.5 最新。
  • 增加 bom (opens new window) 文件,统一 Maven 的依赖管理。
  • 引入 MyBatis Plus (opens new window) 组件,简化 MyBatis 使用,提升开发效率。
  • 引入 Redisson (opens new window) 组件,作为 Redis 的客户端,提供更强大的 Redis 操作。
  • 基于 Redis 实现分布式消息队列的功能。接入 Redis Pub/Sub (opens new window) 实现广播消费,接入 Redis Stream (opens new window) 实现集群消费。
  • 去除 fastjson (opens new window),统一使用 Jackson (opens new window) 作为 JSON 库,老爆安全漏洞的悲伤。
  • 引入 MapStruct (opens new window) 组件,实现数据库实体与 VO 类之间的转换。
  • 引入 Lombok (opens new window) 组件,生成 setter、getter 等常用方法,去除冗余代码。
  • 引入 Spring Async (opens new window) 功能,实现异步任务。例如说,异步记录 API 访问日志、管理员操作日志等等。
  • 魔改 Apollo (opens new window) 组件,接入本地数据库,实现内嵌的配置中心。通俗的说,我们可以将原本添加到 application.yaml 的配置项,改为添加到数据库中,项目启动会进行读取。
  • 引入 Hutool (opens new window) 组件,去除大量重复的工具类,也避免原本 Util 存在一些 bug 的问题。
  • 引入 Screw (opens new window) 组件,实现数据库文档的生成,虽然好像现在用途较少。
  • 引入 EasyExcel (opens new window),提供 Excel 的导入与导出的功能。
  • 实现 Idempotent (opens new window) 组件,实现幂等的功能,可以用来解决 HTTP 重复请求的问题。
  • 引入 Lock4J (opens new window),实现声明式的分布式锁的功能。虽然 Redisson 内置了分布式锁的功能,但是通过注解声明一个 @Lock4j 注解的使用方式,更加便利,且满足绝大多数场景。
  • 去除原有的服务监控,使用 SpringBoot Admin (opens new window) 替代,提供更完整的监控能力。
  • 引入 SkyWalking (opens new window) 组件,实现链路追踪和日志服务的功能。通过链路追踪,我们可以看到一个 API 请求涉及到的 MySQL、Redis 等操作;通过日志服务,我们可以方便的看到每个服务实例的日志。
  • 引入 Resilience4j (opens new window) 组件,实现限流、熔断等功能,保证服务的稳定性。
  • 引入 Knife4j (opens new window),美化接口文档。原本所有 API 接口文档是缺失的,已经全部补全,可见 http://api-dashboard.yudao.iocoder.cn/doc.html (opens new window) 地址。
【v1.1.0】2021.10.25

← 【v1.1.0】2021.10.25

Theme by Vdoing | Copyright © 2019-2025 芋道源码 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×