從 Spring Native 到 Spring Boot 3

工程 | Sébastien Deleuze | 2023年2月23日 | ...

今天,我們正完成將 Spring 對於建構原生可執行檔的支援,從實驗性的 Spring Native 專案轉移到官方的 Spring Boot GraalVM 原生映像檔支援

實際上,這表示我們正在封存 Spring Native GitHub 儲存庫,並將其移至 https://github.com/spring-attic 組織。將不會有 Spring Native (基於 Spring Boot 2.x) 的新版本發佈,並且我們鼓勵所有 Spring Boot 使用者遷移到 Spring Boot 3.x 以利用其官方原生支援。

SpringOne

如果您錯過了 SpringOne 的主題演講,請注意,專門介紹 Spring Boot 3 原生支援的錄影已分為兩個部分提供。

第一部分,與 GraalVM 專案負責人 Thomas Wuerthinger 討論 Spring 和 GraalVM 團隊之間雙贏的合作關係。 SpringOne keynote with Thomas

以及 第二部分,與微軟資深雲端倡議者 Sandra Ahlgrimm 討論在 Azure 上以 scale-to-zero 方式執行 Spring 應用程式。 SpringOne keynote with Sandra

您也可以觀看 Moritz Halbritter 和我共同呈現的「從 Spring Native 到 Spring Boot 3」分組會議 Moritz Halbritter

讓我們慶祝吧!

每個 Spring 實驗性專案的目標都是達到正式發佈 (General Availability) 階段,而 Spring Native 對於 Spring Boot 3 原生支援正是如此。考慮到 Spring 系列產品所期望的品質水準以及我們必須解決的技術挑戰,我們並不確定能否成功。但我們做到了!

因此,讓我們藉此機會與 Spring 社群和 Spring 團隊一同慶祝這項成就,他們密切合作,在 3237 次提交、330 個 pull request 和 2800 個 GitHub 星星之後,使原生編譯成為 Spring 應用程式的一流編譯目標。如果沒有我們收到的所有寶貴回饋,這一切將不可能實現。

我要特別感謝 Andy Clement,他在專案初期貢獻了大部分內容,以及 Stéphane Nicoll 和 Brian Clozel,他們在使原生編譯在 Spring Boot 3 中獲得官方支援方面發揮了重要作用。

但讓我們也慶祝我們現在擁有 Gradle 和 Maven Native Build Tools 外掛程式,以便為各種開源 JVM 函式庫提供開箱即用的支援 到目前為止,Spring 一直是最重要的貢獻者,但我們看到越來越多的其他貢獻者在 pull request 中加入 GraalVM metadata reachability 儲存庫

Libraries and Frameworks Tested with Native Image

其中最棒的部分是 Spring Boot 3 不需要任何 GraalVM 替換來修補 Spring 或 JVM 函式庫。您執行的程式碼就是您的開源函式庫的程式碼,這意味著更好的安全性、更好的可除錯性和更好的可維護性。

我們也不要忘記我們投入的所有精力來引入廣泛的整合測試基礎設施,該基礎設施已透過 spring-aot-smoke-tests 專案實現,該專案允許追蹤 AOT 和原生支援在各種使用案例中的狀態。 AOT smoke tests CI

旅程仍在繼續

由於其 Ahead-of-Time (預先編譯) 轉換引擎,Spring Boot 3 提供的原生支援品質已經顯著優於 Spring Native,但顯然還不夠完美,因此我們正在每個 Spring Boot 修補程式版本中繼續擴大支援範圍,並改進 Spring 系列產品的各個專案。我們也很高興能夠從即將推出的 GraalVM 原生映像檔編譯器和工具改進中受益。

乾杯!

訂閱 Spring 電子報

隨時掌握 Spring 電子報的最新資訊

訂閱

領先一步

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

了解更多

取得支援

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

了解更多

即將到來的活動

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

查看所有