簡單了解springboot加載配置文件順序
1、目錄結(jié)構(gòu)
Application屬性文件,按優(yōu)先級排序,位置高的將覆蓋位置
- 當前項目目錄下的一個/config子目錄
- 當前項目目錄
- 項目的resources即一個classpath下的/config包
- 項目的resources即classpath根路徑(root)
二、讀取順序
如果在不同的目錄中存在多個配置文件,它的讀取順序是:
1、config/application.properties(項目根目錄中config目錄下)
2、config/application.yml
3、application.properties(項目根目錄下)
4、application.yml
5、resources/config/application.properties(項目resources目錄中config目錄下)
6、resources/config/application.yml
7、resources/application.properties(項目的resources目錄下)
8、resources/application.yml
順序可以通過實驗驗證:
1~8 個位置 分別定義不同的 server 端口號 9001~9008
即可驗證結(jié)果順序
注:
1、如果同一個目錄下,有application.yml也有application.properties,默認先讀取application.properties。
2、如果同一個配置屬性,在多個配置文件都配置了,默認使用第1個讀取到的,后面讀取的不覆蓋前面讀取到的。
3、創(chuàng)建SpringBoot項目時,一般的配置文件放置在項目的resources目錄下,因為配置文件的修改,通過熱部署不用重新啟動項目,而熱部署的作用范圍是classpath下
三、配置文件的生效順序,會對值進行覆蓋
- @TestPropertySource 注解
- 命令行參數(shù)
- Java系統(tǒng)屬性(System.getProperties())
- 操作系統(tǒng)環(huán)境變量
- 只有在random.*里包含的屬性會產(chǎn)生一個RandomValuePropertySource
- 在打包的jar外的應用程序配置文件(application.properties,包含YAML和profile變量)
- 在打包的jar內(nèi)的應用程序配置文件(application.properties,包含YAML和profile變量)
- 在@Configuration類上的@PropertySource注解
- 默認屬性(使用SpringApplication.setDefaultProperties指定)
四、配置隨機值
roncoo.secret={random.value} roncoo.number={random.int}
roncoo.bignumber={random.long} roncoo.number.less.than.ten={random.int(10)}
roncoo.number.in.range=${random.int[1024,65536]}
讀取使用注解:@Value(value = "${roncoo.secret}")
注:出現(xiàn)黃點提示,是要提示配置元數(shù)據(jù),可以不配置
五、屬性占位符
當application.properties里的值被使用時,它們會被存在的Environment過濾,所以你能夠引用先前定義的值(比如,系統(tǒng)屬性)
roncoo.name = www.roncoo.com
roncoo.desc = ${roncoo.name} is a domain name
六、其他配置的介紹
端口配置
server.port=8090
時間格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
時區(qū)設置
spring.jackson.time-zone=Asia/Chongqing
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis實現(xiàn)增刪改查_動力節(jié)點Java學院整理
本文通過實例代碼給大家介紹了mybatis實現(xiàn)增刪改查功能,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-09-09java中用數(shù)組實現(xiàn)環(huán)形隊列的示例代碼
這篇文章主要介紹了java中用數(shù)組實現(xiàn)環(huán)形隊列的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04Java基于JDBC連接數(shù)據(jù)庫及顯示數(shù)據(jù)操作示例
這篇文章主要介紹了Java基于JDBC連接數(shù)據(jù)庫及顯示數(shù)據(jù)操作,結(jié)合實例形式分析了Java使用jdbc進行mysql數(shù)據(jù)庫連接與數(shù)據(jù)讀取、顯示等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06