# 正文
正如昨天 (2021-09-01) 在 SpringOne 上宣布的那样, Spring Framework 6 和 Spring Boot 3 计划在 2022 年第四季度发布其基于高端基线的 GA 版本:
- Java 17+ (Java 8-17 的兼容性将在 Spring Framework 5.3.x 研发线路中实现)
- Jakarta EE 9+ (Java EE 7-8 的兼容性将在 Spring Framework 5.3.x 研发线路中实现)
这一前瞻性基线将为我们的 API 设计和集成工作带来显着优势, 也将贯穿您的应用程序的代码, 并在未来许多年内为 Spring 框架和您的应用程序提供保障.
然而, 这当然是有代价的: 基于 Spring Framework 6 和 Spring Boot 3 的应用程序为了与 Jakarta EE 9 兼容, 至少需要 JDK 17 以及 Tomcat 10 / Jetty 11 的运行环境.
更重要的是, 您的应用程序源代码可能需要进行一些更改: 例如, 在 Jakarta EE 9 中, 您需要将 javax 修改为 jakarta 命名空间.
虽然一开始这听起来很激进, 但请记住, 我们谈论的是 2022 年第四季度的发布: 到那时, JDK 17 不仅将取代 JDK 11 作为下一个长期支持版本, 而且 JDK 17 本身也将被 JDK 18 和 JDK 19 作为当时可用的功能性版本所取代, 与此同时 JDK 20 也已经接近其功能冻结期.
Jakarta EE 9 也是如此: 我们预计到那时 Jakarta EE 10 会发布, 并且将下一代 Tomcat / Jetty 和 co 作为可选的运行环境.
以上面的基线作为最低限度, 将允许 Spring Framework 6.x 进一步地随着 Java 一起进化, Java 17 和 Jakarta EE 9 只是一个开始.
同时, Spring Framework 5.3.x 和 Spring Boot 2.x 暂时仍在积极开发中, Spring Boot 2.6 将于今年 11 月推出, Spring Boot 2.7 将于 2022 年 5 月推出.
一旦 Spring Boot 2.x 功能分支抵达终点 (尚未确定这将是 2.7 版本还是可能是更高版本), 该分支将与 Spring Framework 5.3.x 一起进入一个与 Spring Framework 6 和 Spring Boot 3 研发周期并行多年的开源维护阶段. 您可以参考我们之前对 Spring Framework 3.2.x 和 4.3.x 维护分支的处理方式, 以了解这将如何运作.
因此, 如果您打算继续使用 JDK 8 或 11, 亦或者您打算在 JDK 17 上使用 Spring Framework 5.3 相关的基础设施一段时间, 请放心, 我们仍将继续维护 Spring Framework 5.3.x 和 Spring Boot 2.x .
一旦您准备将您的应用程序移植到下一代 Java 生态系统中, 您可以按照自己的节奏随意升级到 Spring Framework 6 和 Spring Boot 3, 以及 Tomcat / Jetty 和 co .
另外: 您需要注意的是 JDK 11 的商业支持时间比 JDK 8 要短以防您将 JDK 11 作为一种长期支持版本.
JDK 11 LTS 将在 2023 年末逐步淘汰. 而 JDK 17 作为下一代 LTS 将提供至少到 2026 年的支持.
我们认为 JDK 8 在生态系统中扮演着独特的角色, 相比之下, JDK 11 则是一个过渡版本. 此外, JDK 17 提供了一组最新的语法 / API 和 JVM 增强功能, 使其成为更具吸引力的升级选项.
最后但同样重要的一点是, Spring Framework 6.x 将在 2024 年支持 JDK 23 LTS 并在 2027 年支持 JDK 29 LTS, 最终将其支持范围变成相当广泛 (JDK 17-29).
# 推广
欢迎加入 Spring Cloud 交流群: 617143034 (opens new window)
欢迎大家使用 阿里云优惠券 (opens new window), 新购续费更优惠: (opens new window)