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 生命周期启动之前发生的远程服务连接。 这通常可能发生在早期数据库交互中,可以通过相关配置来处理,这些配置可以默认应用于您的应用程序(或专门应用于训练运行)以防止此类交互,请参阅 相关文档