Spring-Boot多種屬性源配置讀取優先級

Spring-Boot能從多種屬性源獲得屬性,包括以下幾種:

  1. 命令行參數
  2. Java:comp/env裏的集中JNDI屬性
  3. JVM系統屬性
  4. 操作系統環境變量
  5. 隨機生成的帶random.*前綴的屬性(在設置其他屬性時,可以引用它們,比如$(random.log))
  6. 引用程序意外的application.propertie或者appliaction.yml文件
  7. 打包在應用程序內的application.propertie或者appliaction.yml文件
  8. 通過@PropertySource標註的屬性源
  9. 默認屬性

這個列表按照優先級排序,也就是說,任何在高優先級屬性源裏設置的屬性,都會覆蓋低優先級的相同屬性。例如,命令行參數就會覆蓋其他屬性源的屬性。

application.properties和application.yml文件能放在以下四個位置

  1. 外置,在相對於應用程序運行的目錄的/config子目錄
  2. 外置,在應用程序運行的目錄裏
  3. 內置,在config包內
  4. 內置,在Classpath根目錄

同樣這個列表按照優先級排序,也就是說,/config子目錄的application.properties會覆蓋應用程序Classpath裏的application.properties中的相同屬性。

此外,如果你在同一優先級位置同時有application.properties和application.yml,那麼application.yml裏的屬性會覆蓋application.propertise裏的屬性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章