描述
项目中在application.yml中定义了下面一段:
spring:
profiles:
active: @profiles.active@
作用
其实是配合 maven profile使用,进行选择不同配置文件进行启动。
在项目的pom.xml文件中,有定义多个profile,例子如下:
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
<profiles.logFile>...log</profiles.logFile>
</properties>
</profile>
<!-- 功能测试环境 -->
<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<profiles.active>test</profiles.active>
<profiles.logFile>...log</profiles.logFile>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
<profiles.logFile>...log</profiles.logFile>
</properties>
</profile>
</profiles>
当执行
mvn clean package -P test
命令时,@profiles.active@ 会替换成 test。打开相应打出来的 jar/war 包,就可以看到,已经被替换如下:
spring:
profiles:
active: test
这样就可以灵活的进行环境参数的切换。