實際上,Spring Boot應用程序有多種設置途徑。Spring Boot能從多種屬性源獲得屬性,包括
如下幾處。
(1) 命令行參數
(2) java:comp/env里的JNDI屬性
(3) JVM系統屬性
(4) 操作系統環境變量
50 第3 章 自定義配置
(5) 隨機生成的帶random.*前綴的屬性(在設置其他屬性時,可以引用它們,比如${random.
long})
(6) 應用程序以外的application.properties或者appliaction.yml文件
(7) 打包在應用程序內的application.properties或者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.properties里的屬性。