|
此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Boot 4.0.4! |
提前处理
Spring AOT 是一个在构建时分析代码以生成其优化版本的过程。 它最常用于帮助生成 GraalVM 原生镜像。
org.springframework.boot.aot Gradle 插件提供了可用于对应用程序和测试代码执行 AOT 处理的任务。
当应用 GraalVM 原生镜像插件 时,该插件会自动应用:
-
Groovy
-
Kotlin
plugins {
id 'org.springframework.boot' version '4.1.0-M3'
id 'org.graalvm.buildtools.native' version '0.11.5'
id 'java'
}
plugins {
id("org.springframework.boot") version "4.1.0-M3"
id("org.graalvm.buildtools.native") version "0.11.5"
java
}
如果想在 JVM 上运行经过 AOT 处理的应用程序,而不是作为原生镜像,请直接应用 org.springframework.boot.aot 插件:
在 JVM 上运行 AOT 处理的应用程序
-
Groovy
-
Kotlin
plugins {
id 'org.springframework.boot' version '4.1.0-M3'
id 'java'
}
apply plugin: 'org.springframework.boot.aot'
plugins {
id("org.springframework.boot") version "4.1.0-M3"
java
}
apply(plugin = "org.springframework.boot.aot")
处理应用程序
基于您使用 @SpringBootApplication 注解的主类,processAot 任务会生成将在运行时贡献的 bean 的持久视图,以使 bean 实例化尽可能简单。
可以使用回调对工厂进行额外的后处理。
例如,这些回调用于生成 GraalVM 在原生镜像中初始化上下文所需的必要反射配置。
由于 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 任务的输出。