微语 4.x 版本升级说明:Spring Boot 4.1 / Spring AI 2.0 / Flowable 8 / springdoc 3
· 阅读需 6 分钟
微语 4.x 是一次全面的技术栈大版本升级,核心依赖从 Spring Boot 3.x / Spring AI 1.x 全面跃迁至 Spring Boot 4.1 / Spring AI 2.0,同步完成了 Flowable 8、springdoc-openapi 3、Elasticsearch 9.x 的配套升级。
本文汇总了本次升级涉及的关键变更、已完成事项以及迁移注意事项,帮助使用者平滑过渡到微语 4.x。
版本概览
| 组件 | 升级前 | 升级后 | 状态 |
|---|---|---|---|
| Spring Boot | 3.5.16 | 4.1.0 | ✅ 已完成 |
| Spring AI | 1.1.2 | 2.0.0 | ✅ 已完成(编译层) |
| Flowable | 7.2.0 | 8.0.0 | ✅ 已完成(编译层) |
| springdoc-openapi | 2.8.8 | 3.0.3 | ✅ 已完成 |
| Elasticsearch 镜像 | 8.x | 9.4.2 | ✅ 已完成 |
| Druid Starter | druid-spring-boot-3-starter | druid-spring-boot-4-starter | ✅ 已完成 |
一、Spring Boot 4.1 升级
核心变更
- Spring Framework 7 + Jakarta EE 11 + Servlet 6.1 基线:所有 Spring Bean、自动配置、配置属性绑定均已适配新基线。
- Netty 依赖细化:
netty-all已替换为 Netty 子模块显式依赖(modules/core、modules/call)。 - 健康检查包迁移:健康检查实现已迁至
org.springframework.boot.health.contributor包路径。 - JSpecify nullability:
package-info.java的 nullability 注解已从旧 Spring 废弃注解迁移至 JSpecify/@NullMarked。 - 配置属性迁移:已通过
spring-boot-properties-migrator诊断并修复全部 9 个废弃/更名配置键(包括logging.file.*→logging.logback.*、server.servlet.encoding.*→spring.servlet.encoding.*等),migrator 已从starter/pom.xml移除。
兼容性修复
KbaseInitializer的@AllArgsConstructor在 Spring 7 下导致boolean原语注入失败,已改为@RequiredArgsConstructor。GenericJackson2JsonRedisSerializer(Jackson 2 兼容)弃用警告已通过@SuppressWarnings("deprecation")抑制,待后续 Jackson 3 升级时整体迁移。
已确认无需处理的项
- 项目中 54 处
javax.*import 均为 JDK 标准库包(javax.sql、javax.crypto等),非 Jakarta EE 旧包,无需迁移。 - 项目仅使用 Tomcat + Jetty,Undertow 移除不影响微语。
