Skip to content

5.0.0发布 重构升级 SpringBoot4 SpringCloud2025 JDK21 TypeScript

Latest

Choose a tag to compare

@chillzhuang chillzhuang released this 15 Jul 12:25

技术文档

  • 感谢大家对于BladeX长久以来的支持,现技术文档已经全面免费开放,无需认证、无需 star 即可访问查看
  • BladeX的发展离不开大家的信任,未来我们也将会持续反哺开源社区,提供更好用的产品与功能
  • SpringBlade[后端]:https://www.yuque.com/bladex/springblade
  • Saber[前端]:https://www.yuque.com/bladex/saber

重要说明

  1. 本次为破坏性升级,改动较多,请大家升级前务必备份好相关资料
  2. cloud工程请见工程内对应目录的升级指南:/doc/guide/SpringCloud-5.0升级适配指南.md
  3. boot工程请见工程内对应目录的升级指南:/doc/guide/SpringBoot-5.0升级适配指南.md
  4. saber工程请见工程内对应目录的升级指南:/doc/guide/Saber-5.0升级适配指南.md
  5. 以上升级指南已做好AI适配,若使用 claude code 或 codex 等工具,可直接读取文档后,进行自动升级适配。推荐指令如下:

请执行 SpringBlade Cloud 微服务版低版本 → 5.0 的升级任务。

【目标工程】<低版本 Cloud 工程路径,如 /xx/Workspaces/SpringBlade>(待升级)
【参照工程】/xx/Workspaces/SpringBlade(已完成 5.0 升级,其最新一个 commit 即本次升级的完整变更)
【升级指南】/xx/Workspaces/SpringBlade/doc/guide/SpringCloud-5.0升级适配指南.md

【执行要求】

  1. 先通读升级指南,按其章节作为任务拆解与变更原理的纲领。
  2. 读取参照工程最新 commit 的完整 diff 与文件清单,作为事实基准:
    指南与 diff 冲突时以 diff 为准;diff 中存在但指南未提及的变更同样必须同步,不得遗漏。
  3. 前置校验(任一不满足即停下报告,不要动手):
    • 目标工程 working tree 干净,且其 HEAD 与参照 commit 的父提交一致;
    • 依赖基座 blade-tool 5.0.0 已 mvn clean install 到本地仓库;
    • 本机 JDK 21 可用(5.0 后 java.version=21,JDK 17 编译必失败)。
  4. 以 diff 的文件清单为完整性 checklist,逐文件、逐模块复刻到目标工程,
    含删除文件与二进制文件;批量替换后必须抽查确认;
    严禁做 diff 范围之外的任何重构、格式化或优化。

【验收门禁(全部通过才算完成)】

  1. JDK 21 下执行 mvn clean install -DskipTests,全部模块出现 BUILD SUCCESS;
  2. 目标工程与参照工程全目录比对(排除 .git/target/.idea 等构建产物),差异归零,
    任何残留差异逐条解释原因;
  3. 通过后沿用参照 commit 的原始提交信息进行 commit,严禁 push。

【汇报】完成后输出:文件清单核对结果、编译结果、目录比对结论,
以及执行中发现的所有「指南与 diff 不一致」之处。

更新日志

  1. [升级]JDK 至 Java21 LTS
  2. [升级]Spring 至 7.0.8
  3. [升级]SpringBoot 至 4.1.0
  4. [升级]SpringBootAdmin 至 4.1.1
  5. [升级]SpringCloud 至 2025.1.2
  6. [升级]SpringCloud Alibaba 至 2025.1.0.0
  7. [升级]Nacos 至 3.2.2
  8. [升级]MybatisPlus 至 3.5.17
  9. [升级]MybatisSpring 至 4.0.0
  10. [升级]SpringDoc 至 3.0.3
  11. [升级]Guava 至 33.6.0
  12. [升级]mica-auto 至 4.0.1,适配 Boot4 注解处理器
  13. [升级]maven-compiler-plugin 至 3.15.0
  14. [替换]Web 容器由 Undertow 切换为 Tomcat11
  15. [替换]接口文档由 Knife4j 改用 SpringDoc 原生 UI
  16. [替换]Druid 切换为 druid-spring-boot-4-starter
  17. [替换]spring-boot-starter-aop 替换为 aspectj
  18. [新增]锁定 Jackson2 兼容栈,规避 Boot4 默认 Jackson3 差异
  19. [新增]Swagger @ApiOrder 注解,支持接口文档自定义排序
  20. [新增]SysCache、DictCache、UserCache 系统缓存工具类
  21. [新增]全局异常适配 SF7 方法级校验与 404、413 处理
  22. [新增]Saber 新增 validData、findColumn 自研工具函数
  23. [优化]MybatisPlus IService 迁移至 spring.service 包
  24. [优化]适配 Boot4 自动配置拆包,迁移底层模块 import
  25. [优化]Servlet 编码配置前缀迁移为 spring.servlet.encoding
  26. [优化]Spring7 空值注解统一迁移至 JSpecify 规范
  27. [优化]重构代码生成模板,分离 backend 与 frontend 目录
  28. [优化]Saber 前端页面全量重构为 script setup + TypeScript