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"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章