本文非原創(chuàng),僅為 原文章 做了一點補充
本文中示例程序gitee地址:Radar,非常優(yōu)秀的spring boot項目饶氏。
1.SpringBoot 激活多環(huán)境全局配置文件
在實際的的開發(fā)中芹橡,對于一個工程毒坛,經(jīng)常配置很多個Profile(配置文件),每個Profile都對應(yīng)一個完整的全局配置林说,例如開發(fā)環(huán)境(application-dev.properties)煎殷、測試環(huán)境(application-test.properties)、生產(chǎn)環(huán)境(application-prod.properties)等腿箩。在不同的環(huán)境下豪直,配置有可能是不一樣的。SpringBoot 提供可以很方便地切換不同場景下的配置文件珠移,激活哪個弓乙,其對應(yīng)的全局配置就生效。
(1)properties 格式全局配置文件的做法:
默認必須要有 文件钧惧,同時可以多寫幾個配置文件暇韧,名字取為 ,然后不做激活配置浓瞪,默認就使用 懈玻,在 做激活配置,激活哪個追逮,哪個生效酪刀。配置端口號粹舵,通過 來激活,運行程序主類骂倘,查看OK
(2) YAML格式全局配置文件的做法
- YAML格式全局配置文件眼滤,在同一個application.yml全局配置文件進行多文檔塊方式配置
有兩個以上沒定義文檔快名稱的,以最后一個文檔快作為全局配置文件历涝,所以文檔塊記得取名诅需。
- 為了更方便維護各種環(huán)境的配置,可以將 yml文件拆分
在src/main/resource目錄下荧库,再創(chuàng)建yml配置文件(不需要定義文檔塊和命名spring.profiles屬性)堰塌,文件命名規(guī)則為 application-{profiles}.yml,然后分衫,在原來application.yml 做激活配置场刑,激活哪個,哪個生效蚪战。
??紅框這里可以直接寫dev或者local,也可以引用pom.xml中配置的參數(shù)牵现。??
- 除了在上面默認全局配置文件里激活Profile以外,還可用 IDEA命令方式激活邀桑,命令方式激活時會忽略配置文件的激活配置
1)在idea中配置命令行參數(shù),任意選擇一種即可瞎疼,優(yōu)先級高于配置文件激活
-Dspring.profiles.active=xx
--spring.profiles.active=xxx
xxx
2)將項目打成 jar 包后,在啟動 jar包命令后添加激活配置文件的命令參數(shù)
優(yōu)先級高于配置文件激活和IDEA激活
2.SpringBoot 配置文件目錄優(yōu)先級
1壁畸、當前項目中配置文件
SpringBoot配置文件可以放置在多種路徑下贼急,不同路徑下的配置優(yōu)先級有所不同。默認會掃描這幾個放置目錄的默認配置文件:
當前項目的根目錄/config/ # 最高優(yōu)先級
當前項目的根目錄/ # 第二優(yōu)先級
類路徑(在resources目錄下)/config/ # 第三優(yōu)先級
類路徑(在resources目錄下)/ # 第四優(yōu)先級
配置端口號这揣,運行程序主類悔常,查看OK, 優(yōu)先級:8081 --> 8082 --> 8083 --> 8084 .
2给赞、外部配置文件
在項目已打包運行后机打,若需要修改配置文件時,可以在jar包的外面片迅,新建一個外部配置文件残邀,
然后在運行jar包命令后添加激活外部配置文件的命令參數(shù) (--spring.config.location=文件路徑),
那么這個新的外部配置文件會覆蓋jar包中配置文件里相同的配置項信息。即:外部配置文件優(yōu)先級最高芥挣。
將上面項目打包驱闷,新建一個外部配置文件,端口號為 8079.
以上空免。