JVM による事前処理

AOT で生成された初期化コードを使用してアプリケーションを実行すると、起動時間が短縮されます。まず、構築している jar に AOT で生成されたコードが含まれていることを確認する必要があります。

CDS と AOT を組み合わせると、起動時間をさらに短縮できます。

Maven の場合、これは、native プロファイルをアクティブ化するために -Pnative を使用してビルドする必要があることを意味します。

$ mvn -Pnative package

Gradle の場合、ビルドに org.springframework.boot.aot プラグインが含まれていることを確認する必要があります。

JAR が構築されたら、spring.aot.enabled システムプロパティを true に設定して実行します。例:

$ java -Dspring.aot.enabled=true -jar myapplication.jar

........ Starting AOT-processed MyApplication ...

事前処理の使用には欠点があることに注意してください。これは次の制限を意味します。

  • クラスパスは固定され、ビルド時に完全に定義されます

  • アプリケーションで定義された Bean は実行時に変更できません。つまり、次のことを意味します。

    • Spring @Profile アノテーションとプロファイル固有の構成には制限があります

    • Bean が作成された場合に変更されるプロパティはサポートされていません (たとえば、@ConditionalOnProperty および .enable プロパティ)。

事前処理の詳細については、Spring 事前処理についてセクションを参照してください。