目录
4、环境分类配置文件application-test.yml
多环境开发(yaml版)
yml配置文件中
#启动指定环境
spring:
profiles:
active: dev
---
#设置生产环境
spring:
profiles: pro
server:
port: 88
---
#设置开发环境
spring:
profiles: dev
server:
port: 89
---
#设置测试环境
spring:
profiles: test
server:
port: 90
测试运行
小结
1、多环境开发需要设置多种常用环境,比如开发、生产、测试环境
2、yaml格式中设置多环境使用---区分环境设置边界
3、每种环境的区别再与加载的配置属性不同
4、启用某种环境是需要指定启动时使用该环境
多环境开发(yaml版)多配置文件格式
分成四个单独的yml配置文件
1、主启动配置文件application.yml
spring:
profiles:
active: dev
2、环境分类配置文件application-pro.yml
server:
port: 80
3、环境分类配置文件application-dev.yml
server:
port: 81
4、环境分类配置文件application-test.yml
server:
port: 82
测试得
多环境开发配置文件说明:
主配置文件中设置公共配置(全局属性)
环境分类配置文件中常见于设置各自属性(局部)
独立的配置文件有利于维护更新。
多环境开发(properties版)多配置文件格式
和yml基本一致,只是把yml配置文件后缀改成properties然后按照语法格式即可
如:
server.port=9090
注:properties支持多文件的配置,不支持单一文件(即开发测试运行放在一个配置文件中的)
多环境开发独立配置文件书写技巧
多环境分组管理
根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下
application-devDB.yml
application-devRedis.yml
application-devMVC.yml
include属性
dev中
server:
port: 8010
devDB
server:
port: 8011
devMVC中
server:
port: 8012
servlet:
context-path: /ok
在include中, active是主配置,内容最后加载,后加载的相同属性会覆盖前面加载的,加载顺序也是从左到右。
group属性
在SpringBoot2.4之后支持group属性,开始使用group属性替代include属性,降低了配置书写量
使用group属性定义多种主环境与子环境的包含关系。
spring:
profiles:
active: dev
group:
"dev": devDB,devMVC
"pro": proDB,proMVC
运行结果:
加载的顺序是主配置先加载其余配置按从左到右,所以有相同的部分看最右边的值
maven中控制
<profiles>
<profile>
<id>env_dev</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<activation>
<!-- <activeByDefault>true</activeByDefault>-->
</activation>
</profile>
<profile>
<id>env_pro</id>
<properties>
<profile.active>pro</profile.active>
</properties>
<activation>
<!-- 默认开启-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
application.yml
spring:
profiles:
active: @profile.active@
group:
"dev": devDB,devMVC
"pro": proDB
当maven与SpringBoot同时对多环境进行控制时,以Maven为主
SpringBoot使用@..@占位符读取Maven对应的配置属性值
基于SpringBoot读取Maven配置属性的前提下,如果在Idea测试工程师pom.xml每次更新需要手动compile方可以生效