簡單了解springboot加載配置文件順序
1、目錄結(jié)構(gòu)
Application屬性文件,按優(yōu)先級排序,位置高的將覆蓋位置
- 當(dāng)前項(xiàng)目目錄下的一個(gè)/config子目錄
- 當(dāng)前項(xiàng)目目錄
- 項(xiàng)目的resources即一個(gè)classpath下的/config包
- 項(xiàng)目的resources即classpath根路徑(root)

二、讀取順序
如果在不同的目錄中存在多個(gè)配置文件,它的讀取順序是:
1、config/application.properties(項(xiàng)目根目錄中config目錄下)
2、config/application.yml
3、application.properties(項(xiàng)目根目錄下)
4、application.yml
5、resources/config/application.properties(項(xiàng)目resources目錄中config目錄下)
6、resources/config/application.yml
7、resources/application.properties(項(xiàng)目的resources目錄下)
8、resources/application.yml
順序可以通過實(shí)驗(yàn)驗(yàn)證:
1~8 個(gè)位置 分別定義不同的 server 端口號 9001~9008
即可驗(yàn)證結(jié)果順序
注:
1、如果同一個(gè)目錄下,有application.yml也有application.properties,默認(rèn)先讀取application.properties。
2、如果同一個(gè)配置屬性,在多個(gè)配置文件都配置了,默認(rèn)使用第1個(gè)讀取到的,后面讀取的不覆蓋前面讀取到的。
3、創(chuàng)建SpringBoot項(xiàng)目時(shí),一般的配置文件放置在項(xiàng)目的resources目錄下,因?yàn)榕渲梦募男薷?,通過熱部署不用重新啟動項(xiàng)目,而熱部署的作用范圍是classpath下
三、配置文件的生效順序,會對值進(jìn)行覆蓋
- @TestPropertySource 注解
- 命令行參數(shù)
- Java系統(tǒng)屬性(System.getProperties())
- 操作系統(tǒng)環(huán)境變量
- 只有在random.*里包含的屬性會產(chǎn)生一個(gè)RandomValuePropertySource
- 在打包的jar外的應(yīng)用程序配置文件(application.properties,包含YAML和profile變量)
- 在打包的jar內(nèi)的應(yīng)用程序配置文件(application.properties,包含YAML和profile變量)
- 在@Configuration類上的@PropertySource注解
- 默認(rèn)屬性(使用SpringApplication.setDefaultProperties指定)
四、配置隨機(jī)值
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)黃點(diǎn)提示,是要提示配置元數(shù)據(jù),可以不配置
五、屬性占位符
當(dāng)application.properties里的值被使用時(shí),它們會被存在的Environment過濾,所以你能夠引用先前定義的值(比如,系統(tǒng)屬性)
roncoo.name = www.roncoo.com
roncoo.desc = ${roncoo.name} is a domain name
六、其他配置的介紹
端口配置
server.port=8090
時(shí)間格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
時(shí)區(qū)設(shè)置
spring.jackson.time-zone=Asia/Chongqing
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決SpringBoot項(xiàng)目讀取yml文件中值為中文時(shí),在視圖頁面顯示亂碼
這篇文章主要介紹了解決SpringBoot項(xiàng)目讀取yml文件中值為中文時(shí),在視圖頁面顯示亂碼的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Spring Boot中的 6 種API請求參數(shù)讀取方式示例詳解
使用Spring Boot開發(fā)API的時(shí)候,讀取請求參數(shù)是服務(wù)端編碼中最基本的一項(xiàng)操作,Spring Boot中也提供了多種機(jī)制來滿足不同的API設(shè)計(jì)要求,這篇文章主要介紹了Spring Boot中的 6 種API請求參數(shù)讀取方式示例詳解,需要的朋友可以參考下2024-05-05
Spring?Cloud?Stream消息驅(qū)動組件使用方法介紹
Spring?Cloud?Stream?消息驅(qū)動組件幫助我們更快速,更方便,更友好的去構(gòu)建消息驅(qū)動微服務(wù)的。當(dāng)時(shí)定時(shí)任務(wù)和消息驅(qū)動的?個(gè)對比。消息驅(qū)動:基于消息機(jī)制做一些事情2022-09-09
mybatis+springboot發(fā)布postgresql數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了mybatis+springboot發(fā)布postgresql數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
玩轉(zhuǎn)spring boot 結(jié)合AngularJs和JDBC(4)
玩轉(zhuǎn)spring boot,這篇文章主要介紹了結(jié)合AngularJs和JDBC,玩轉(zhuǎn)spring boot,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Java數(shù)據(jù)結(jié)構(gòu)之圖的領(lǐng)接矩陣詳解
圖的領(lǐng)接矩陣存儲方式是用兩個(gè)數(shù)組來表示圖。一個(gè)一位數(shù)組存儲圖中頂點(diǎn)信息,一個(gè)二維數(shù)組存儲圖中的邊或弧的信息。本文將為大家重點(diǎn)介紹一下數(shù)據(jù)結(jié)構(gòu)中的圖的鄰接矩陣,快來跟隨小編一起學(xué)習(xí)吧2021-11-11
Java基于IDEA實(shí)現(xiàn)http編程的示例代碼
這篇文章主要介紹了Java基于IDEA實(shí)現(xiàn)http編程的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

