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