Spring Framework 6 的 Java 17 和 Jakarta EE 9 基线

工程 | Juergen Hoeller | 2021年9月2日 | ...

正如昨天在 SpringOne 上宣布的那样,Spring Framework 6 和 Spring Boot 3 计划在 2022 年第四季度普遍可用时达到高端基线

  • Java 17+(从 Spring Framework 5.3.x 系列中的 Java 8-17)
  • Jakarta EE 9+(从 Spring Framework 5.3.x 系列中的 Java EE 7-8)

这个面向未来的基线将为我们的 API 设计和集成工作带来显著好处,体现在您的应用程序代码中,并为框架以及您的应用程序提供多年的未来保障。当然,这需要付出一定的代价:基于 Spring Framework 6 和 Spring Boot 3 的应用程序在运行时至少需要 JDK 17,以及至少 Tomcat 10/Jetty 11(为了与 Jakarta EE 9 兼容)。更重要的是,您的应用程序源代码可能需要一些更改:例如,在您接触 Servlet API、JPA、Bean Validation 等任何地方,Jakarta EE 9 中的 *javax* 到 *jakarta* 命名空间的更改。

虽然这起初听起来可能比较激进,但请记住,我们说的是 2022 年第四季度的版本:到那时,JDK 17 不仅会取代 JDK 11 成为下一个长期支持版本超过一年,它本身也会被 JDK 18 和 JDK 19 作为当时可用的功能版本所取代,JDK 20 也即将冻结功能。Jakarta EE 9 也是如此:我们预计届时 Jakarta EE 10 将发布,并且将支持 Tomcat、Jetty 等的另一代作为运行时选项。保持上述基线作为最低要求,这允许在 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 等——新的基础设施优势和新的架构选项将为您提供。

附注:如果您想知道 JDK 11 作为 LTS 版本的情况,请注意,JDK 11 的商业支持时间框架比 JDK 8 短,JDK 11 LTS 将于 2023 年底淘汰。JDK 17 作为下一个 LTS 版本,至少将提供到 2026 年的支持时间框架。我们认为 JDK 8 在生态系统中具有独特的作用;相比之下,JDK 11 是一个过渡版本。此外,JDK 17 提供了一套累积的最新语言、API 和 JVM 增强功能,使其成为更具吸引力的升级选择。最后但并非最不重要的是,在同一个 Spring Framework 6.x 版本中,仍将支持直到 29 LTS(2027 年)的 JDK 版本,这使得最终的支持范围将成为相当广泛的 JDK 17-29。

获取 Spring 电子报

通过 Spring 电子报保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部