領先一步
VMware 提供培訓和認證,以加速您的進度。
瞭解更多我謹代表所有貢獻者,很高興宣布 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,並且是基於 Spring Boot 穩定版本的第一個版本。
0.8.3 專為剛發布的 GraalVM 20.3.0 設計。
到目前為止,為了將 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 函式庫以可維護的方式支援原生編譯。 我們將在明年年初分享更多關於這項工作的資訊。