springboot如何引入外部yml配置文件
springboot引入外部yml配置文件
當(dāng)需要在springboot中引用其他的yml文件時(shí),需要在application.yml里配置
spring:
profiles:
include: email,xmyb
值得注意的是:application-email.yml的前綴一定要和主在配置文件application.yml的名字一致
springboot引入多個(gè)yml
1. 項(xiàng)目?jī)?nèi)部配置文件
spring boot 啟動(dòng)會(huì)掃描以下位置的application.properties或者application.yml文件作為Spring boot的默認(rèn)配置文件
–file:./config/ –file:./ –classpath:/config/ –classpath:/

以上是按照優(yōu)先級(jí)從高到低的順序,所有位置的文件都會(huì)被加載,高優(yōu)先級(jí)配置內(nèi)容會(huì)覆蓋低優(yōu)先級(jí)配置內(nèi)容。
SpringBoot會(huì)從這四個(gè)位置全部加載主配置文件,如果高優(yōu)先級(jí)中配置文件屬性與低優(yōu)先級(jí)配置文件不沖突的屬性,則會(huì)共同存在—互補(bǔ)配置。
我們也可以通過(guò)配置spring.config.location來(lái)改變默認(rèn)配置。
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=file:///D:/application.properties,classpath:/,classpath:/config/
項(xiàng)目打包好以后,我們可以使用命令行參數(shù)的形式,啟動(dòng)項(xiàng)目的時(shí)候來(lái)指定配置文件的新位置。
指定配置文件和默認(rèn)加載的這些配置文件共同起作用形成互補(bǔ)配置。
Idea 單測(cè)啟用自定義配置:添加jvm參數(shù):-Dspring.config.location=file:///D:/project_conf/application.yml -ea
2. 外部配置加載順序
SpringBoot也可以從以下位置加載配置:優(yōu)先級(jí)從高到低;高優(yōu)先級(jí)的配置覆蓋低優(yōu)先級(jí)的配置,所有的配置會(huì)形成互補(bǔ)配置。
1. 命令行參數(shù)
- 所有的配置都可以在命令行上進(jìn)行指定;
- 多個(gè)配置用空格分開(kāi); –配置項(xiàng)=值
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc
2. 來(lái)自java:comp/env的JNDI屬性
3. Java系統(tǒng)屬性(System.getProperties())
4. 操作系統(tǒng)環(huán)境變量
5. RandomValuePropertySource配置的random.*屬性值
6. jar包外部的application-{profile}.properties或application.yml(帶spring.profile)配置文件
7. jar包內(nèi)部的application-{profile}.properties或application.yml(帶spring.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)屬性
要添加不同的文件,您可以使用spring.config.location以逗號(hào)分隔的屬性文件列表或文件位置(目錄)的屬性。
-Dspring.config.location=your/config/dir/
上面的那個(gè)將添加一個(gè)目錄,該目錄將參考application.properties文件。
-Dspring.config.location=classpath:job1.properties,classpath:job2.properties
這會(huì)將2個(gè)屬性文件添加到已加載的文件中。
默認(rèn)配置文件和位置在附加指定spring.config.location的文件和位置之前加載,這意味著后者將始終覆蓋先前設(shè)置的屬性。(另請(qǐng)參閱“Spring Boot參考指南”的此部分)。
如果spring.config.location包含目錄(而不是文件),它們應(yīng)該以/結(jié)尾(并且將附加spring.config.name在加載之前生成的名稱)。
classpath:,classpath:/config,file:,file:config/始終使用默認(rèn)搜索路徑,而不管其值是多少spring.config.location。
通過(guò)這種方式,您可以為應(yīng)用程序設(shè)置默認(rèn)值application.properties(或者您選擇的任何其他基本名稱spring.config.name),并在運(yùn)行時(shí)使用不同的文件覆蓋它,保留默認(rèn)值。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java的Socket實(shí)現(xiàn)長(zhǎng)連接以及數(shù)據(jù)的發(fā)送和接收方式
這篇文章主要介紹了Java的Socket實(shí)現(xiàn)長(zhǎng)連接以及數(shù)據(jù)的發(fā)送和接收方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Java多文件以ZIP壓縮包導(dǎo)出的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Springboot開(kāi)發(fā)OAuth2認(rèn)證授權(quán)與資源服務(wù)器操作
這篇文章主要介紹了Springboot開(kāi)發(fā)OAuth2認(rèn)證授權(quán)與資源服務(wù)器操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
如何解決@value獲取不到y(tǒng)aml數(shù)組的問(wèn)題
文章介紹了在使用YAML配置文件時(shí),通過(guò)@Value注解獲取整數(shù)和數(shù)組列表的配置方法,并提供了兩種解決方案:一種適用于非嵌套列表,另一種適用于嵌套列表等復(fù)雜配置2024-11-11
java實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)功能
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
springboot實(shí)現(xiàn)跨域的五種方式總結(jié)
在Spring Boot中實(shí)現(xiàn)跨域,可以采用全局跨域和局部跨域兩種方式,下面這篇文章主要給大家介紹了關(guān)于springboot實(shí)現(xiàn)跨域的五種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

