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
(Javadoc) アノテーションとプロファイル固有の構成には制限があります。Bean が作成される場合に変更されるプロパティはサポートされていません (たとえば、
@ConditionalOnProperty
(Javadoc) プロパティや.enabled
プロパティ)。
事前処理の詳細については、Spring 事前処理についてセクションを参照してください。