对于最新的稳定版本,请使用 Spring Boot 3.4.0! |
提前处理
Spring AOT 是一个在构建时分析代码以生成其优化版本的过程。 它最常用于帮助生成 GraalVM 原生映像。
Spring Boot Gradle 插件提供了可用于对应用程序和测试代码执行 AOT 处理的任务。 应用 GraalVM Native Image 插件时,会自动配置这些任务:
-
Groovy
-
Kotlin
plugins {
id 'org.springframework.boot' version '3.3.6'
id 'org.graalvm.buildtools.native' version '0.10.3'
id 'java'
}
plugins {
id("org.springframework.boot") version "3.3.6"
id("org.graalvm.buildtools.native") version "0.10.3"
java
}
加工应用
根据您的@SpringBootApplication
-annotated 主类、processAot
task 生成将在运行时提供的 bean 的持久视图,其方式使 bean 实例化尽可能简单。
可以使用 callbacks 对工厂进行额外的后处理。
例如,这些用于生成 GraalVM 在原生镜像中初始化上下文所需的必要反射配置。
由于BeanFactory
在构建时做好充分准备,则还会评估条件。
与常规 Spring Boot 应用程序在运行时执行的作相比,这具有重要区别。
例如,如果要选择使用或选择退出某些功能,则需要配置在构建时使用的环境才能执行此作。
为此,processAot
task 是一个JavaExec
任务,并可以根据需要配置环境变量、系统属性和参数。
这nativeCompile
任务会自动配置为使用processAot
任务。
加工测试
AOT 引擎可以应用于使用 Spring 的 Test Context Framework 的 JUnit 5 测试。
合适的测试由processTestAot
要生成的任务ApplicationContextInitializer
法典。
与应用程序 AOT 处理一样,BeanFactory
在构建时已做好充分准备。
与 一样processAot
这processTestAot
task 是JavaExec
子类,可以根据需要进行配置以影响此处理。
这nativeTest
任务会自动配置为使用processAot
和processTestAot
任务。