Spring Native for GraalVM 0.8.3 現已推出

發佈 | Sébastien Deleuze | 2020 年 11 月 23 日 | ...

我謹代表所有貢獻者,很高興宣布 Spring Native for GraalVM 0.8.3 已發布,可從 Spring milestone repository 取得,請查看更新後的 參考文件 以了解更多詳細資訊。

Spring Native for GraalVM 提供一個孵化中的支援,可使用 native-image 編譯器將 Spring 應用程式編譯為原生可執行檔,以便提供一個原生部署選項,該選項旨在封裝在輕量級容器中。 實際上,目標是在這個新平台上,支援您未修改的 Spring 應用程式(通常是 Spring Boot 應用程式)。

0.8.3 的新功能

Spring Boot 2.4.0 基準

0.8.3 現在基於 Spring Boot 2.4.0,並且是基於 Spring Boot 穩定版本的第一個版本。

GraalVM 20.3.0 支援

0.8.3 專為剛發布的 GraalVM 20.3.0 設計。

@SpringBootApplication 和 @Configuration 具有預設屬性

到目前為止,為了將 Spring 應用程式編譯為原生,您必須使用 @SpringBootApplication(proxyBeanMethods = false)@Configuration(proxyBeanMethods = false),因為 proxyBeanMethods = true(先前的預設行為)建立的 CGLIB 代理在原生中不受支援。

從 Spring Native 0.8.3 開始,@SpringBootApplication@Configuration 不再建立 CGLIB 代理,因此它們可以直接相容於原生。 我們還新增了一個驗證機制,用於檢查您的應用程式和函式庫是否使用交叉 @Bean 調用(僅在使用 CGLIB 代理時才支援),如果檢測到此類模式,則會擲回錯誤。 如果需要,您可以使用 -Dspring.native.verify=false 關閉此驗證。

改善的相容性

與往常一樣,我們正努力逐步提高原生支援的範圍和品質,請參閱 詳細的變更日誌 以了解更多詳細資訊。

下一步是什麼

我們下一個預計於 2021 年初發布的 0.9.0 milestone 將是一個重要的里程碑,因為它將實現我們在 Spring Boot starters 子集上的 Beta 支援的開始,例如 Spring MVC、WebFlux、Data (JPA、JDBC、Elastic Search、Neo4j、MongoDB、Redis、R2DBC)、Security、Batch、Function 等。

我們將進行幾次大的重構,以逐步將該專案轉換為模組,這些模組稍後可以整合到 Spring 頂級專案中。 作為此過程的一部分,我們將引入一組 建置時轉換,這些轉換將在您的應用程式上完成,以便在穩健性和效率方面將 Spring Native 提升到一個新的水平。

同時,我們還與 GraalVM 團隊合作開發 JUnit 5 原生測試,並幫助 JVM 函式庫以可維護的方式支援原生編譯。 我們將在明年年初分享更多關於這項工作的資訊。

訂閱 Spring 電子報

隨時關注 Spring 電子報

訂閱

領先一步

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

瞭解更多

獲得支援

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

瞭解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看全部