預先處理
Spring AOT 是一種在建置時期分析您的程式碼,以產生最佳化版本的程序。它最常用於協助產生 GraalVM native images。
Spring Boot Gradle 外掛程式提供了可用於在應用程式和測試程式碼上執行 AOT 處理的任務。當 GraalVM Native Image 外掛程式應用時,這些任務會自動配置。
-
Groovy
-
Kotlin
plugins {
id 'org.springframework.boot' version '3.3.5'
id 'org.graalvm.buildtools.native' version '0.10.3'
id 'java'
}
plugins {
id("org.springframework.boot") version "3.3.5"
id("org.graalvm.buildtools.native") version "0.10.3"
java
}
處理應用程式
基於您的 @SpringBootApplication
註解的主要類別,processAot
任務會產生一個持續性的視圖,顯示在運行時將貢獻的 beans,以盡可能簡化 bean 的實例化。可以使用回呼對 factory 進行額外的後處理。例如,這些用於產生 GraalVM 在 native image 中初始化 context 所需的反射組態。
由於 BeanFactory
在建置時期已完全準備就緒,因此也會評估條件。這與常規 Spring Boot 應用程式在運行時所做的操作有重要的差異。例如,如果您想要選擇加入或退出某些功能,您需要配置在建置時期使用的環境才能做到這一點。為此,processAot
任務是一個 JavaExec
任務,並且可以根據需要使用環境變數、系統屬性和引數進行配置。
GraalVM Native Image 外掛程式的 nativeCompile
任務會自動配置為使用 processAot
任務的輸出。
處理測試
AOT 引擎可以應用於使用 Spring 測試上下文框架的 JUnit 5 測試。合適的測試由 processTestAot
任務處理,以產生 ApplicationContextInitializer
程式碼。與應用程式 AOT 處理一樣,BeanFactory
在建置時期已完全準備就緒。與 processAot
一樣,processTestAot
任務是 JavaExec
子類別,並且可以根據需要進行配置以影響此處理。
GraalVM Native Image 外掛程式的 nativeTest
任務會自動配置為使用 processAot
和 processTestAot
任務的輸出。