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)
如下图:
注意:必须以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
未完待续…