Spring Framework 6将使用Java 17和Jakarta EE 9作为基线版本

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"本文最初发表于"},{"type":"link","attrs":{"href":"https:\/\/medium.com\/@puneet.chandel\/technology-choices-that-make-sense-today-f76872743ec1","title":"","type":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"Spring官方博客网站"}]},{"type":"text","marks":[{"type":"strong"}],"text":",由InfoQ中文站翻译并分享。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在最近召开的SpringOne上,Spring官方宣布Spring Framework 6和Spring Boot 3计划将基于更高的基线于2022年的第四季度发布通用可用版本:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Java 17+(目前Spring Framework 5.3.x的基线是Java 8-17)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Jakarta EE 9+(目前Spring Framework 5.3.x的基线是Java EE 7-8)"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"这种具有前瞻性的基线将会为我们的API设计和集成工作带来明显的收益,让应用程序的代码保持崭新的状态,并且能够让框架和应用程序在未来的许多年内保持良好的发展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"当然,这也是有代价的,基于Spring Framework 6和Spring Boot 3的应用程序在运行时方面至少需要JDK 17,并且需要Tomcat 10 \/ Jetty 11(为了兼容Jakarta EE 9)环境。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"更重要的是,应用程序的源代码可能需要一些改变:例如,在Jakarta EE 9中,只要涉及到Servlet API、JPA、Bean Validation等功能,就需要将javax改为jakarta命名空间。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"这听起来虽然有些激进,但请注意,我们讨论的是2022年第四季度的发布。到那时,JDK 17早已取代JDK 11成为下一个长期支持版本一年多了,而且它本身也将被JDK 18和JDK 19所取代,作为特性发布版本,它们已经可用了,而且JDK 20也接近其功能冻结期。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"对于Jakarta EE 9也是如此。我们预计Jakarta EE 10届时业已发布,并且新一代的Tomcat、Jetty和其他的运行时方案将会支持它们。保持上述最低限度的基线,可以在Spring Framework 6.x一代中获得进一步的Java进化,而Java 17和Jakarta EE 9只是一个开始。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"与此同时,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维护分支的处理,可以预期在实际中的结果是什么样子的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因此,如果你打算在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和相关可用的解决方案,这样就可以享受新基础设施的优势和新的架构方案。我们希望你能在未来几年内欣赏这些选择。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"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。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英文链接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/medium.com\/@puneet.chandel\/technology-choices-that-make-sense-today-f76872743ec1"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章