最新の安定バージョンについては、Spring Boot 4.1.0 を使用してください! |
クラスデータ共有と AOT キャッシュ
このセクションでは、Spring Boot アプリケーションにおけるクラスデータ共有(CDS)と AOT キャッシュの使用について説明します。Spring Boot における CDS と AOT キャッシュのサポートの概要については、クラスデータの共有を参照してください。
CDS と Buildpacks を使用してアプリケーションをパッケージ化する
Spring Boot の Cloud Native Buildpacks サポートと Paketo Java buildpack (英語) およびその Spring Boot サポート (英語) を使用すると、CDS に最適化されたアプリケーションを含む Docker イメージを生成できます。
生成された Docker イメージで CDS 最適化を有効にするには、Maven プラグインおよび Gradle プラグインのドキュメントに従って、イメージをビルドするときに buildpack 環境変数 BP_JVM_CDS_ENABLED を true に設定する必要があります。これにより、buildpack はアプリケーションのトレーニング実行を実行し、イメージに CDS アーカイブを保存し、アプリケーションの起動時に CDS アーカイブを使用します。
Spring Boot 用の Paketo Buildpack ドキュメント [GitHub] (英語) には、CDS トレーニング実行に対してのみデフォルトの JAVA_TOOL_OPTIONS をオーバーライドできる CDS_TRAINING_JAVA_TOOL_OPTIONS など、ビルダー環境変数で有効にできるその他の構成オプションに関する情報が記載されています。
AOT キャッシュと Buildpacks を使用してアプリケーションをパッケージ化する
Spring Boot の Cloud Native Buildpacks サポートは、 Paketo Java buildpack (英語) およびその Spring Boot サポート (英語) とともに、AOT キャッシュに最適化されたアプリケーションを含む Docker イメージを生成するために使用できます。
生成された Docker イメージで AOT キャッシュを有効にするには、Java 25 以降を使用する必要があります。また、Maven プラグインおよび Gradle プラグインのドキュメントに記載されているように、イメージをビルドする際に buildpack 環境変数 BP_JVM_AOTCACHE_ENABLED を true に設定する必要があります。これにより、buildpack はアプリケーションのトレーニング実行を行い、AOT キャッシュをイメージに保存し、アプリケーションの起動時にこのキャッシュを使用します。
Spring Boot の Paketo、Buildpack のドキュメント [GitHub] (英語) には、AOT キャッシュトレーニング実行に対してのみデフォルトの JAVA_TOOL_OPTIONS をオーバーライドできる TRAINING_RUN_JAVA_TOOL_OPTIONS など、ビルダー環境変数で有効にできるその他の構成オプションに関する情報が記載されています。
CDS と Dockerfiles を使用してアプリケーションをパッケージ化する
Cloud Native Buildpacks を使用しない場合は、Dockerfile で CDS を使用することもできます。詳細については、Dockerfiles リファレンスドキュメントを参照してください。
AOT キャッシュと Dockerfiles を使用してアプリケーションをパッケージ化する
Cloud Native Buildpacks を使用しない場合は、Dockerfile で AOT キャッシュを使用することも可能です。詳細については、Dockerfiles リファレンスドキュメントを参照してください。
トレーニング実行中の リモートサービスの相互作用の防止
トレーニング実行を実行する場合、Spring ライフサイクルの開始前に発生する可能性のある リモートサービスへの接続を防ぐために、Spring Boot アプリケーション構成をカスタマイズする必要がある場合があります。これは通常、初期のデータベース相互作用で発生する可能性があり、このような相互作用を防ぐためにアプリケーション (または具体的にはトレーニング実行) にデフォルトで適用できる関連構成を介して処理できます。関連ドキュメント [GitHub] (英語) を参照してください。