Spring Boot profile用于分离不同环境的参数配置,通过spring.profile.active参数设置使用指定的profile。
在Spring Boot中应用程序配置可以使用2种格式:application.properties 或者 application.yml。
以".yml"格式为例说明:
在项目配置中,通常会存在如下几个配置文件:
application.yml: 用于公共参数配置
application-dev.yml: 用于开发环境配置
application-test.yml: 用于测试环境配置
application-prod.yml: 用于生产环境配置
在application.yml中设置:
spring:
profile:
active: dev | test | prod # 设置profile参数
例如:当指定spring.profile.active = dev 后,程序启动时将加载application.yml 和 application-dev.yml 中的配置参数。
另外,如果项目使用maven进行构建,为了打包时只打包相应的application配置文件,需要通过maven的profile定义来实现。
1 <!-- 定义环境 --> 2 <profiles> 3 <!-- 开发环境 --> 4 <profile> 5 <id>dev</id> 6 <properties> 7 <!-- 定义profileActive属性 --> 8 <profileActive>dev</profileActive> 9 </properties> 10 <activation> 11 <activeByDefault>true</activeByDefault> 12 </activation> 13 </profile> 14 15 <!-- 测试环境 --> 16 <profile> 17 <id>test</id> 18 <properties> 19 <profileActive>test</profileActive> 20 </properties> 21 </profile> 22 23 <!-- 生产环境 --> 24 <profile> 25 <id>prod</id> 26 <properties> 27 <profileActive>prod</profileActive> 28 </properties> 29 </profile> 30 </profiles> 31 32 <build> 33 <resources> 34 <resource> 35 <directory>src/main/resources</directory> 36 <filtering>true</filtering> 37 <excludes> 38 <exclude>application.yml</exclude> 39 <exclude>application-dev.yml</exclude> 40 <exclude>application-test.yml</exclude> 41 <exclude>application-prod.yml</exclude> 42 </excludes> 43 </resource> 44 <resource> 45 <directory>src/main/resources</directory> 46 <filtering>true</filtering> 47 <includes> 48 <include>application.yml</include> 49 <include>application-${profileActive}.yml</include> 50 </includes> 51 </resource> 52 </resources> 53 <build>
【参考】
http://blog.csdn.net/lihe2008125/article/details/50443491
http://www.jianshu.com/p/01efe59d6a64
http://blog.javachen.com/2016/02/22/profile-usage-in-spring-boot.html