SpringBoot默认加载的是application.yml文件,如果想要引入其它配置的yml文件,就要在application.yml中激活。

01 application.yml与bootstrap.yml的区别

  • bootstrap.yml 和 application.yml 都可以用来配置参数。

  • bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦bootStrap.yml 被加载,则内容不会被覆盖。(例如一些固定的不能被覆盖的属性)

  • application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

  • bootstrap.yml先加载application.yml后加载。

02 多环境下的配置文件

  • application-demo.yml(本地环境下的配置)
  • application-dev.yml(开发环境下的配置)
  • application-local.yml(本地环境下的配置)
  • application-test.yml(测试环境下的配置)
  • application-prod.yml(生产环境下的配置)
  • bootstrap-demo.yml(本地环境下的配置,boostrap加载优于application)
  • bootstrap-dev.yml(开发环境下的配置,boostrap加载优于application)
  • bootstrap-local.yml(本地环境下的配置,boostrap加载优于application)
  • bootstrap-test.yml(测试环境下的配置,boostrap加载优于application)
  • bootstrap-prod.yml(生产环境下的配置,boostrap加载优于application)

如下图:
微服务技术系列教程(47)-SpringBoot多配置文件总结_# 微服务技术

注意:必须以application-开头,bootstrap-开头)

03 激活要启动的配置

在bootstrap.properties里(或yml)配置profiles.active=“启动的环境”,例如需要配置启动dev环境的配置,bootstrap.properties配置如下:

  • spring.profiles.active=local

04 子模块继承父模块配置

如果当前项目模块还有子模块,需要在子模块添加配置文件,例如:子模块命名为application-func.yml,则在父模块的配置文件里面需要加入:

spring:  
  profiles:
    include: func

同理,多环境配置(application-func-dev.yml、application-func-prod.yml)可以如下:

spring:  
  profiles:
    include: func-dev
spring:  
  profiles:
    include: func-prod

未完待续…