在 Spring Boot 中管理多個外部設定檔
Spring Boot 有助於從外部設定檔載入屬性。然而,理解優先順序和覆蓋機制對於有效管理多個文件至關重要。
外部設定檔優先級
Spring Boot 按特定順序讀取屬性文件,後續文件會覆蓋先前設定的屬性那些。預設優先順序如下:
- 命令列參數
- 系統屬性
- 環境變數
- jar 外部的應用程式屬性(例如application .properties , application.yml)
- jar 內的應用程式屬性(例如, application.properties, application.yml)
spring.config.location 屬性
要指定外部屬性文件,請使用 spring.config.location 屬性。此屬性接受以逗號分隔的檔案位置或目錄清單。
範例:
-Dspring.config.location=my-config/,classpath:additional.properties
登入後複製
檔案位置:classpath:/additional.properties(位於類別路徑上的檔案)-
- spring.config.additional-location 屬性
在Spring Boot 2.x 中, spring.config.additional-location 屬性用於新增外部設定檔而不覆蓋預設值。這是相對於 1.x 的更改,其中 spring.config.location 替換了預設值。
範例:
覆寫預設屬性
-Dspring.config.additional-location=my-additional-config/
登入後複製
要使用外部檔案覆寫預設屬性,請確保外部檔案包含與預設屬性同名的屬性。應使用 spring.config.location 或 spring.config.additional-location 包含外部檔案。 工作空間設定注意事項在工作空間設定的上下文中(例如,使用外部設定)目前工作目錄中的資料夾),使用-Dspring.config.location=file: ./config 指定資料夾位置。這將確保您的工作區設定資料夾優先於預設屬性。 自訂屬性解析也可以實作自訂屬性解析機制。例如,您可以在 @Configuration 類別上使用 @PropertySource 註解來指定自訂屬性位置。但是,請記住,自訂屬性將覆蓋預設或外部設定檔中設定的屬性。
以上是Spring Boot如何管理多個外部設定檔及其優先順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!