Class Data Sharing
本节包含有关在 Spring Boot 应用程序中使用 Class Data Sharing (CDS) 的信息。 有关 Spring Boot 对 CDS 支持的概述,请参阅 类数据共享。
使用 CDS 和 Buildpacks 打包应用程序
Spring Boot 的 对 Cloud Native Buildpacks 的支持 以及 Paketo Java buildpack 及其 Spring Boot 支持 可用于生成包含 CDS 优化应用程序的 Docker 镜像。
要在生成的 Docker 镜像中启用 CDS 优化,在构建镜像时应将 buildpack 环境变量 BP_JVM_CDS_ENABLED
设置为 true
,如 Maven 插件 和 Gradle 插件 文档中所述。
这将导致 buildpack 对应用程序进行训练运行,在镜像中保存 CDS 归档,并在启动应用程序时使用 CDS 归档。
Paketo Buildpack for Spring Boot 文档 提供了有关可以通过构建器环境变量启用的其他配置选项的信息,例如 CDS_TRAINING_JAVA_TOOL_OPTIONS
,它允许覆盖默认的 JAVA_TOOL_OPTIONS
,仅用于 CDS 训练运行。
使用 CDS 和 Dockerfiles 打包应用程序
如果您不想使用 Cloud Native Buildpacks,也可以使用 Dockerfile
来使用 CDS。
有关更多信息,请参阅 Dockerfiles 参考文档。
防止训练运行期间的远程服务交互
在执行训练运行时,可能需要自定义 Spring Boot 应用程序配置,以防止在 Spring 生命周期启动之前发生的远程服务连接。 这通常可能发生在早期数据库交互中,可以通过相关配置来处理,这些配置可以默认应用于您的应用程序(或专门应用于训练运行)以防止此类交互,请参阅 相关文档。