在实际开发中,我们的项目往往需要根据不同的环境,使用不同的文件配置。
比如
- 在测试环境中使用application-test.yml
- 在开发环境中使用application-dev.yml
- 在生产环境中使用application-pro.yml
实现方法
通过在application.yml的配置文件中配置
spring:
profiles:
active: dev //根据不同的环境使用dev|test|pro
配置后springboot会激活application-${active}.yml的配置文件。如此一来每次我们需要切换环境时只需要修改此配置即可。
但是很明显这种方式特别麻烦,每次切换环境时都需要修改此配置。
我们可以结合IDEA自带的maven插件来实现不同配置的切换,每次切换环境只要勾选就行了。
实现方法
在pom文件中如下配置
<profiles>
<!-- 开发环境 -->
<profile>
<!-- 环境名称 -->
<id>dev</id>
<!-- 默认是否激活 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<!-- 配置自定义属性 -->
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>test</spring.profiles.active>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
// 指定目录下的文件通过maven过滤器
<filtering>true</filtering>
</resource>
</resources>
</build>
注:占位符 '@maven中配置的变量名@'
maven过滤器会替换文件中的占位符'@变量名@',可以查看编译后的文件,原本的占位符被变量值所替代。
spring:
profiles:
active: '@spring.profiles.active@'