JVM 提前处理
使用 AOT 生成的初始化代码运行应用程序有利于缩短启动时间。首先,您需要确保构建的 jar 包含 AOT 生成的代码。
| AOT 缓存和 Spring 的 AOT 可以结合使用,以进一步缩短启动时间。 |
对于 Maven,这意味着您应该使用 -Pnative 进行构建以激活 native 配置文件。
$ 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 预先处理 部分。