Spring Framework 6 的 Java 17 與 Jakarta EE 9 基準線

工程 | Juergen Hoeller | 2021 年 9 月 2 日 | ...

如同昨日在 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 的相容性)。更重要的是,您的應用程式原始碼可能需要進行一些變更:例如,在您接觸 Servlet API、JPA、Bean Validation 等的任何地方,Jakarta EE 9 中 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 等 - 新的基礎架構優勢和新的架構選項將供您使用。我們希望您能在未來幾年內欣賞這些選擇。

附註:如果您對 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 29 LTS(2027 年)的 JDK 版本,無論如何,最終的支援範圍將擴展到相當廣泛的 JDK 17-29。

訂閱 Spring 電子報

隨時接收 Spring 電子報的最新消息

訂閱

領先一步

VMware 提供培訓和認證,加速您的進展。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中,為 OpenJDK™、Spring 和 Apache Tomcat® 提供支援和二進位檔案。

了解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部