Spring Boot 自動配置的Bean提供了300多個用於微調的屬性,這些屬性可以通過在環境變量、java的系統屬性、JNDI(Java Naming and Directory Interface)、命令行參數或者屬性文件裏進行配置,以下已設置服務器端口號server.port=9080進行說明。
(1)命令行參數
$ java -jar ***-0.0.1-SNAPSHOT.jar --server.port=9080
(2)java:comp/env裏的JNDI屬性
(3)JVM系統屬性
(4)操作系統的環境變量,例如在linux服務中:
$ export server_port = 9080
(5) 應用程序內的application.properties 或者application.yml文件中,以及應用程序以外的application.properties 或者application.yml。在程序內外同時存在相同名稱的配置文件時,生效的順序是怎樣的呢?
外置 | 在相對於應用程序運行目錄的/config子目錄裏 |
外置 | 在應用程序運行的目錄裏 |
內置 | 在config包內 |
內置 | 在classpath根目錄裏 |
按照表格的優先級進行排序,就是配置屬性生效的順序。
(6)通過@PropertySource標註的屬性源
(7)默認屬性
從(1)~(7)按照優先級由高到低進行排序,任何在高優先級中屬性源都會覆蓋低優先級屬性源中相同屬性名的屬性
參考書籍:《Spring Boot 實戰》作者:【美】Craig Walls 著 , 丁雪豐 譯