使用 JVM 进行提前处理
使用 AOT 生成的初始化代码运行应用有利于启动时间。首先,你需要确保你构建的 JAR 包包含 AOT 生成的代码。
CDS 和 AOT 可以结合使用,进一步缩短启动时间。 |
对于 Maven,这意味着你应该使用 -Pnative
进行构建以激活 native
profile
$ mvn -Pnative package
对于 Gradle,你需要确保你的构建包含 org.springframework.boot.aot
插件。
构建 JAR 包后,使用 spring.aot.enabled
系统属性设为 true
来运行它。例如
$ java -Dspring.aot.enabled=true -jar myapplication.jar
........ Starting AOT-processed MyApplication ...
请注意,使用提前处理存在缺点。它意味着以下限制:
-
类路径在构建时固定且完全定义
-
应用中定义的 Bean 在运行时不能改变,这意味着
-
如果 Bean 被创建,会随之改变的属性不受支持(例如,
@ConditionalOnProperty
和.enabled
属性)。
要了解更多关于提前处理的信息,请参阅了解 Spring 提前处理 一节。