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)目內(nèi)部配置文件
spring boot 啟動(dòng)會掃描以下位置的application.properties或者application.yml文件作為Spring boot的默認(rèn)配置文件
–file:./config/ –file:./ –classpath:/config/ –classpath:/
以上是按照優(yōu)先級從高到低的順序,所有位置的文件都會被加載,高優(yōu)先級配置內(nèi)容會覆蓋低優(yōu)先級配置內(nèi)容。
SpringBoot會從這四個(gè)位置全部加載主配置文件,如果高優(yōu)先級中配置文件屬性與低優(yōu)先級配置文件不沖突的屬性,則會共同存在—互補(bǔ)配置。
我們也可以通過配置spring.config.location來改變默認(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í)候來指定配置文件的新位置。
指定配置文件和默認(rèn)加載的這些配置文件共同起作用形成互補(bǔ)配置。
Idea 單測啟用自定義配置:添加jvm參數(shù):-Dspring.config.location=file:///D:/project_conf/application.yml -ea
2. 外部配置加載順序
SpringBoot也可以從以下位置加載配置:優(yōu)先級從高到低;高優(yōu)先級的配置覆蓋低優(yōu)先級的配置,所有的配置會形成互補(bǔ)配置。
1. 命令行參數(shù)
- 所有的配置都可以在命令行上進(jìn)行指定;
- 多個(gè)配置用空格分開; –配置項(xiàng)=值
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc
2. 來自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. 通過SpringApplication.setDefaultProperties指定的默認(rèn)屬性
要添加不同的文件,您可以使用spring.config.location以逗號分隔的屬性文件列表或文件位置(目錄)的屬性。
-Dspring.config.location=your/config/dir/
上面的那個(gè)將添加一個(gè)目錄,該目錄將參考application.properties文件。
-Dspring.config.location=classpath:job1.properties,classpath:job2.properties
這會將2個(gè)屬性文件添加到已加載的文件中。
默認(rèn)配置文件和位置在附加指定spring.config.location的文件和位置之前加載,這意味著后者將始終覆蓋先前設(shè)置的屬性。(另請參閱“Spring Boot參考指南”的此部分)。
如果spring.config.location包含目錄(而不是文件),它們應(yīng)該以/結(jié)尾(并且將附加spring.config.name在加載之前生成的名稱)。
classpath:,classpath:/config,file:,file:config/始終使用默認(rèn)搜索路徑,而不管其值是多少spring.config.location。
通過這種方式,您可以為應(yīng)用程序設(shè)置默認(rèn)值application.properties(或者您選擇的任何其他基本名稱spring.config.name),并在運(yùn)行時(shí)使用不同的文件覆蓋它,保留默認(rèn)值。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Java中XML Namespace 命名空間問題
這篇文章主要介紹了Java中XML Namespace 命名空間,XML命名空間是由國際化資源標(biāo)識符 (IRI) 標(biāo)識的 XML 元素和屬性集合,該集合通常稱作 XML“詞匯”,對XML Namespace 命名空間相關(guān)知識感興趣的朋友一起看看吧2021-08-08Java中使用@CrossOrigin和Proxy解決跨域問題詳解
這篇文章主要介紹了Java中使用@CrossOrigin和Proxy解決跨域問題詳解,在Web開發(fā)中,如果前端頁面和后端接口不在同一個(gè)域名下,就會發(fā)生跨域請求的問題,同源策略是瀏覽器的一種安全策略,它限制了來自不同源的客戶端腳本在瀏覽器中運(yùn)行時(shí)的交互,需要的朋友可以參考下2023-12-12如何在springboot中實(shí)現(xiàn)頁面的國際化
今天帶大家學(xué)習(xí)如何在springboot中實(shí)現(xiàn)頁面的國際化,文中有非常詳細(xì)的圖文解說及代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05SpringBoot整合RestTemplate用法的實(shí)現(xiàn)
本篇主要介紹了RestTemplate中的GET,POST,PUT,DELETE、文件上傳和文件下載6大常用的功能,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Mybatis通用Mapper(tk.mybatis)的使用
本文主要介紹了Mybatis通用Mapper(tk.mybatis)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07