【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】
根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下
不停地做细粒度的控制
使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔
spring:
profiles:
active: dev
include: devDB,devRedis,devMVC
【注意】当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效
直接试试
又新建一个配置文件
spring:
profiles:
active: dev

造其他配置文件:

直接运行看看

可以看到端口生效了,但是路径并没有生效
因为我们加载配置时,没说要包含 application-devDB.yml 和 application-devMVC.yml
【包含】
spring:
profiles:
active: dev
include: devMVC,devDB

可以看到,日志告诉我们,有三个配置文件生效了,而且路径也生效了
【这里有个顺序问题】

做个实验

启动服务器看看效果

把dev 中的改掉

可以看到,用了后面的
如果我在include 中把顺序改了

没毛病。后面的生效【覆盖】【主启动的配置最后加载】
【问题来了】
如果我现在要切换环境

这些都要改【不好】
spring:
profiles:
active: dev
group:
"dev": devDB,devMVC
"pro": proDB,proMVC
【环境组】

启动看看

顺序也变了,dev 变第一个了【那么运行结果也会改了】
但是,这种方式就很大地方便了进行环境切换
回顾一下

从Spring2.4版开始使用group属性替代include属性,降低了配置书写量
使用group属性定义多种主环境与子环境的包含关系
