一、背景
在项目开发的过程中会用到多个环境比如:本地环境(开发自测)、开发环境(环境部署自测)、生产环境等,由于不同的环境需要不同的配置信息,为了便于开发使用,通常需要使用profiles进行多环境配置。
二、介绍
spring.profiles.active 是 Spring Framework 中用于激活特定配置文件的属性。Spring Profiles 提供了一种方式,使你可以为不同的环境(例如开发、测试、生产)或不同的用例(例如特性切换)定义不同的 bean 配置。
当你在 Spring Boot 应用中设置 spring.profiles.active 属性时,你实际上是在告诉 Spring Boot 你想激活哪个配置文件或哪些配置文件。
例如,假设你有以下的配置文件:
- application.properties 或 application.yml(默认配置文件)
- application-dev.properties 或 application-dev.yml(开发环境配置文件)
- application-prod.properties 或 application-prod.yml(生产环境配置文件)
三、配置
1、在 application.properties 或 application.yml 中手动设置
spring.profiles.active=dev
2、通过命令行参数
java -jar myapp.jar --spring.profiles.active=dev
3、自动配置
pom文件中添加如下配置
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>local</id>
<properties>
<profileActive>local</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
bootstrap.yml或application.yml中的配置:
spring:
profiles:
active: @profileActive@
atcive也可以在idea中指定