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 中 javaxjakarta 名稱空間的更改。

雖然這乍一聽可能有些激進,但請記住我們談論的是 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 社群所有即將舉行的活動。

檢視所有