Spring Framework 将基于 Java 17 与 Jakarta EE 9 基线进行开发

aliyun 2021 promotion (opens new window)

原文地址: https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6 (opens new window)

# 正文

正如昨天 (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)