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

正如在 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 兼容)。更重要的是,您的应用程序源代码可能需要进行一些更改:例如,在 Jakarta EE 9 中,无论您在哪里接触 Servlet API、JPA、Bean 验证等,javax到jakarta命名空间的更改。

虽然这听起来可能有点激进,但请记住,我们谈论的是 2022 年第四季度的发布:到那时,不仅 JDK 17 将取代 JDK 11 作为下一个长期支持版本超过一年,而且JDK 18 和 JDK 19 本身将被 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 暂时仍在积极开发中,今年 11 月推出 Spring Boot 2.6,然后在 2022 年 5 月推出 Spring Boot 2.7。一旦最终的 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 - 以及新的基础设施优势和新的架构选项变得对你可用。我们希望您在接下来的几年里会欣赏这些选择。

PS:如果您想知道 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 中,仍然会有 JDK 23 LTS (2024) 和 JDK 29 LTS (2027) 支持,无论如何将最终支持范围变成相当广泛的 JDK 17-29 .

你可能感兴趣的