@levinzhang
2021-09-06T12:17:37.000000Z
字数 1768
阅读 811
在最近召开的SpringOne上,Spring官方宣布Spring Framework 6和Spring Boot 3计划将基于更高的基线于2022年的第四季度发布通用可用版本,即Java 17和Jakarta EE 9。
本文最初发表于Spring官方博客网站,由InfoQ中文站翻译分享。
在最近召开的SpringOne上,Spring官方宣布Spring Framework 6和Spring Boot 3计划将基于更高的基线于2022年的第四季度发布通用可用版本:
这种具有前瞻性的基线将会为我们的API设计和集成工作带来明显的收益,让应用程序的代码保持崭新的状态,并且能够让框架和应用程序在未来的许多年内保持良好的发展。当然,这也是有代价的,基于Spring Framework 6和Spring Boot 3的应用程序在运行时方面至少需要JDK 17,并且需要Tomcat 10 / Jetty 11(为了兼容Jakarta EE 9)环境。更重要的是,应用程序的源代码可能需要一些改变:例如,在Jakarta EE 9中,只要涉及到Servlet API、JPA、Bean Validation等功能,就需要将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和相关可用的解决方案,这样就可以享受新基础设施的优势和新的架构方案。我们希望你能在未来几年内欣赏这些选择。
PS: 如果你想了解JDK 11作为LTS(Long-Term Support)的相关信息,请注意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。