【解決方案】springboot引入通用配置文件

springboot中spring.profiles.include的妙用。

 

我們有這樣的一個springboot項目。項目分爲開發、測試、生產三個不同階段(環境),每個階段都會有db、ftp、redis等的不同配置信息。我們可以使用spring.profiles.include來實現三種不同環境的一鍵切換。

 

項目總(入口)配置文件:

bootstrap.yml  ,內容如下

spring.profiles.active:  dev  #dev、test、prod 三種配置可以在這裏進行一鍵切換,默認激活 dev(開發)環境配置

  

項目開發環境配置文件:

application-dev.yml (開發環境入口配置)、application-devDb.yml 、application-devFtp.yml、application-devRedis.yml 

application-dev.yml 中含有如下內容

spring.profiles.include: devDb,devFtp,devRedis

 

項目測試環境配置文件:

application-test.yml (測試環境入口配置)、application-testDb.yml 、application-testFtp.yml、application-testRedis.yml 

 

application-test.yml 中含有如下內容

spring.profiles.include: testDb,testFtp,testRedis

 

項目生產環境配置文件:

application-prod.yml (生產環境入口配置)、application-prodDb.yml 、application-prodFtp.yml、application-prodRedis.yml 

application-prod.yml 中含有如下內容

spring.profiles.include: prodDb,prodFtp,prodRedis

 

spring.profiles.include 的作用是可以疊加激活新的profile ,這樣可以在總的項目配置(bootstrap.yml)中實現一鍵切換dev、test、prod三者不同環境, 即 

切換爲dev時,同時激活了dev、devDb、devFtp、devRedis 的profile

切換爲test時,同時激活了test、testDb、testFtp、testRedis 的profile

切換爲prod時,同時激活了prod、prodDb、prodFtp、prodRedis 的profile

 

 

另外: 在yml配置文件中配置List<String> 的值,可以採用  -子項 的方式,如 :

spring.profiles.include:

  - 子項1

  - 子項2

  - 子項3   

 

也可以採用 逗號分隔元素列表的方式,如: 

spring.profiles.include: 子項1,子項2,子項3  
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章