JVM 的AOT处理
使用 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 ...
请注意,使用提前处理有一些缺点。 它意味着以下限制:
-
类路径在构建时是固定的且完全定义的
-
应用程序中定义的 beans 不能在运行时更改,这意味着:
-
不支持改变 bean 创建时的属性(例如,
@ConditionalOnProperty
和.enabled
属性)。
要了解更多关于提前处理的信息,请参阅 理解 Spring Ahead-of-Time Processing 部分。