當(dāng)前位置:首頁(yè) > IT技術(shù) > 編程語(yǔ)言 > 正文

8. SpringBoot 外部配置的加載順序(優(yōu)先級(jí))
2022-05-31 17:11:04

SpringBoot也可以從以下位置加載配置; 優(yōu)先級(jí)從高到低;高優(yōu)先級(jí)的配置覆蓋低優(yōu)先級(jí)的配置,所有的配置會(huì) 形成互補(bǔ)配置?

1.命令行參數(shù) 所有的配置都可以在命令行上進(jìn)行指定 例:

?java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc 多個(gè)配置用空格分開(kāi);

格式:  --配置項(xiàng)=值??

命令行參數(shù)是優(yōu)先級(jí)最高的。

?

2.來(lái)自java:comp / env的JNDI屬性

?

3.Java系統(tǒng)屬性(System.getProperties())

?

4.操作系統(tǒng)環(huán)境變量

?

5.RandomValuePropertySource配置的random.*屬性值

?

由jar包外?向 jar包內(nèi)進(jìn)行尋找; 優(yōu)先加載帶profile  【外包內(nèi)包其實(shí)就是resouce目錄下 相同的配置名 其次看位置 越外的即是外包】

?

6.jar包外部的application-{profile}.properties或application.yml(帶spring.profile)配置文件

7.jar包內(nèi)部的application-{profile}.properties或application.yml(帶spring.profile)配置文件

?

其次來(lái)加載不帶profile

?

8.jar包外部的application.properties或application.yml(不帶spring.profile)配置文件

9.jar包內(nèi)部的application.properties或application.yml(不帶spring.profile)配置文件

?

10.@Configuration注解類上的@PropertySource

?

11.通過(guò)SpringApplication.setDefaultProperties指定的默認(rèn)屬性

?

?

其實(shí)就是說(shuō)? :

配置文件都會(huì)先執(zhí)行不帶porfile的【即默認(rèn)】

然之后: 按照 優(yōu)先級(jí) 進(jìn)行執(zhí)行【多個(gè)帶profile 配置文件?它們的是同一個(gè)級(jí)別的,只能用?spring:? profiles:? ? active:? 配置?執(zhí)行一個(gè)生效】,然后高優(yōu)先級(jí)的配置文件 一直往下 覆蓋低優(yōu)先級(jí)的配置文件。

?優(yōu)先級(jí)就是上面列出的點(diǎn)了.


作者:??咸瑜???

本文摘自 :https://blog.51cto.com/u

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >