搭配 JVM 的預先處理

使用 AOT 產生的初始化程式碼執行您的應用程式,對於啟動時間很有幫助。首先,您需要確保您正在建置的 jar 包含 AOT 產生的程式碼。

CDS 和 AOT 可以結合使用,以進一步縮短啟動時間。

對於 Maven 來說,這表示您應該使用 -Pnative 進行建置,以啟動 native 設定檔

$ 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 ...

請注意,使用預先處理有一些缺點。它暗示了以下限制

  • 類別路徑在建置時已固定且完全定義

  • 應用程式中定義的 beans 無法在執行時期變更,這表示

    • Spring @Profile 註解和特定設定檔的組態有其限制

    • 如果 bean 是在建立時變更的屬性則不受支援 (例如,@ConditionalOnProperty.enable 屬性)。

若要深入瞭解預先處理,請參閱瞭解 Spring 預先處理章節。