我们开发当中一般会有多种运行环境,在各种运行环境中配置文件多少有些不同。我们可以利用spring.profiles.active来实现动态加载配置文件。
实现很简单,以springboot+ maven项目为例,走起:
一、创建配置文件
配置文件结构:这里建三个配置文件,application.yml作为主配置文件配置所有共同的配置;-dev和-local分别配置两种环境下的不同配置内容,如数据库地址等。
application.yml中添加spring.profiles.active配置来动态加载活跃的配置文件:
spring:
profiles:
active: @spring.active@
二、POM文件添加PROFILES配置
<profiles>
<profile>
<id>local</id>
<properties>
<spring.active>local</spring.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
<spring.active>dev</spring.active>
</properties>
</profile>
</profiles>
以上配置声明有两种配置文件、分别为dev和local。且默认使用local(通过<activeByDefault>true</activeByDefault>设置的)。
这样配置好的项目在maven中就多了一个配置项:
local有灰色对勾√,说明默认使用local。
三、具体应用
1、使用mvn命令打包项目打包时。
- mvn clean package 清理并打包命令,默认是使用local配置文件。
- mvn clean package -P dev 清理并指定配置文件打包命令,使用dev配置文件。
2、手动打包,通过勾选profiles选项切换配置文件
maven profiles中勾选dev,然后打包,则使用dev配置文件
3、本地启动springboot时,以idea为例。
- 如步骤2中勾选所需激活的配置文件后,启动application中的main方法则对应加载勾选中的配置文件。
- 还可以在idea中配置指定加载配置文件,指定后勾选功能失效。方法如下: