参考:通过spring的profiles的active属性启用特定环境的配置
1、在yml中使用pom定义的maven属性变量
格式:@var@
spring:
application:
name: dream-web-gateway
profiles:
active: '@profiles.active@'
2、profiles.active在父模块的pom文件的profile中定义,默认启用dev环境,则profiles.active的值为dev
<!-- profile配置 -->
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<!-- 定义该配置的属性 -->
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<!-- 设置默认激活这个配置 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<!-- 定义该配置的属性 -->
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>pro</id>
<!-- 定义该配置的属性 -->
<properties>
<profiles.active>pro</profiles.active>
</properties>
</profile>
</profiles>
我们也可以使用多个yml来配置属性,将于环境无关的属性放置到application.yml文件里面;通过与配置文件相同的命名规范,创建application-{profile}.yml文件 存放不同环境特有的配置,例如 application-test.yml 存放测试环境特有的配置属性,application-prod.yml 存放生产环境特有的配置属性。
在application.yml文件里面spring.profiles.active=xxx
来指定加载不同环境的配置,如果不指定,则默认只使用application.yml属性文件,不会加载其他的profiles的配置。
通过以上配置,yml中的配置相当于profile.active=dev,则会加载application-dev.yml,相当于如下配置
spring:
profiles:
active: dev