JVM的提前处理
启动时间内用AOT生成的初始化代码运行应用是有益的。 首先,你需要确保你构建的 jar 包含了 AOT 生成的代码。
| AOT缓存和Spring的AOT可以结合使用,进一步提升启动时间。 |
对于Maven来说,这意味着你应该用-非本地人以激活本地轮廓:
$ 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 ...
但要注意,使用提前处理也有缺点。 它包含以下限制:
-
类路径在构建时是固定且完全定义的
-
你应用中定义的豆子在运行时不能更改,意味着:
-
不支持创建豆子后发生变化的属性(例如,
@ConditionalOnProperty和。启用性质)。
如需了解更多关于提前处理的信息,请参阅“理解春季提前处理”部分。