使用spring profile
一般情况,我们会在项目中建多个application.yml。例如application.yml,application-dev.yml,application-test等。通过在application.yml文件中配置profile使用哪个,不设置的话会默认使用默认配置。例如:
spring:
profiles:
active: dev
上面这个配置会使得application-dev.yml生效。
当然,也可以将多个配置文件都写在一个application.yml中,只需要用---
隔开。
那么如何使用maven的profile来控制spring的profile呢?
使用maven的profile来控制spring的profile
-
在项目主pom文件中增加profile配置
<!-- Maven控制Spring Profile --> <profiles> <!--开发配置--> <profile> <id>dev</id> <!-- 默认激活dev --> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <profileActive>dev</profileActive> </properties> <build> <!-- 产生的构件的文件名,默认值是${artifactId}-${version}--> <finalName>${project.artifactId}-dev-${project.version}</finalName> </build> </profile> <!--测试配置--> <profile> <id>test</id> <properties> <profileActive>test</profileActive> </properties> <build> <!-- 产生的构件的文件名--> <finalName>${project.artifactId}-test-${project.version}</finalName> </build> </profile> <!--生产配置--> <profile> <id>prod</id> <properties> <profileActive>prod</profileActive> </properties> <build> <!-- 产生的构件的文件名--> <finalName>${project.artifactId}-${project.version}</finalName> </build> </profile> </profiles> <build> <!-- profile对资源的操作 --> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>application*.yml</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <!-- 是否替换@xx@表示的maven properties属性值 --> <filtering>true</filtering> <includes> <include>application.yml</include> <include>application-${profileActive}.yml</include> </includes> </resource> </resources> </build>
-
application.yml 配置
spring: profiles: active: @profileActive@
-
如果使用IDEA来开发的话,会在maven窗口栏看到多出了一个Profiles选项
image 选中不同的profile进行快速切换,然后启动应用,非常方便。