AOT 缓存

AOT 缓存是一种JVM 特性,有助于减少 Java 应用程序的启动时间和内存占用。spring-doc.cadn.net.cn

如果使用的是 Java < 24,你应该阅读关于 CDS 的部分。 CDS 是 AOT 缓存的前身,但工作方式类似。spring-doc.cadn.net.cn

Spring Boot 同时支持 CDS 和 AOT 缓存,如果所使用的 JVM 版本(Java 24 或更高版本)支持 AOT 缓存,建议优先使用 AOT 缓存。spring-doc.cadn.net.cn

AOT 缓存

如果使用的是 Java < 24,AOT 缓存不可用。 您必须使用 CDS 替代。

要使用 AOT 缓存功能,您应首先以解压形式对您的应用程序执行一次训练运行:spring-doc.cadn.net.cn

$ java -Djarmode=tools -jar my-app.jar extract --destination application
$ cd application
$ java -XX:AOTCacheOutput=app.aot -Dspring.context.exit=onRefresh -jar my-app.jar

这将创建一个 app.aot 缓存文件,只要应用程序未更新且使用相同的 Java 版本,该文件就可以重复使用。spring-doc.cadn.net.cn

要使用缓存文件,您需要在启动应用程序时添加一个额外的参数:spring-doc.cadn.net.cn

$ java -XX:AOTCache=app.aot -jar my-app.jar
你必须使用包含应用程序提取形式的缓存文件,否则它不会生效。

CDS

如果您使用的是 Java 24 或更高版本,请使用 AOT 缓存代替 CDS。

要使用 CDS,您应首先以提取形式对您的应用程序执行一次训练运行:spring-doc.cadn.net.cn

$ java -Djarmode=tools -jar my-app.jar extract --destination application
$ cd application
$ java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar my-app.jar

这将创建一个 application.jsa 归档文件,只要应用程序未更新,该文件即可重复使用。spring-doc.cadn.net.cn

要使用归档文件,您需要在启动应用程序时添加一个额外的参数:spring-doc.cadn.net.cn

$ java -XX:SharedArchiveFile=application.jsa -jar my-app.jar
你必须使用包含应用程序提取形式的缓存文件,否则它不会生效。
有关 CDS 的更多详细信息,请参阅 JDK 的类数据共享(Class Data Sharing)文档