預先處理

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 任務會自動配置為使用 processAotprocessTestAot 任務的輸出。