类数据共享 (CDS)

类数据共享 (CDS) 是一项 JVM 特性,可以帮助减少 Java 应用的启动时间和内存占用。

在 Java 24 中,CDS 被通过 JEP 483 引入的 AOT Cache 所取代。Spring Boot 同时支持 CDS 和 AOT Cache,建议在你使用的 JVM 版本(Java 24+)中优先使用后者。

CDS

要使用 CDS,你应该首先对已解压的应用进行一次训练运行

$ 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 归档文件,只要应用没有更新,就可以重复使用该文件。

要使用该归档文件,在启动应用时需要添加一个额外的参数

$ java -XX:SharedArchiveFile=application.jsa -jar my-app.jar
有关 CDS 的更多详细信息,请参阅 CDS 操作指南Spring Framework 参考文档

AOT Cache

要使用 AOT Cache,你应该首先对已解压的应用进行一次训练运行

$ java -Djarmode=tools -jar my-app.jar extract --destination application
$ cd application
$ java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf -Dspring.context.exit=onRefresh -jar my-app.jar
$ java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar my-app.jar

这会创建一个 app.aot 缓存文件,只要应用没有更新,就可以重复使用该文件。中间文件 app.aotconf 不再需要,可以安全删除。

要使用该缓存文件,在启动应用时需要添加一个额外的参数

$ java -XX:AOTCache=app.aot -jar my-app.jar