springboot利用spring.profiles.active=@spring.active@不同环境下灵活切换配置文件
我们开发当中一般会有多种运行环境,在各种运行环境中配置文件多少有些不同。我们可以利用spring.profiles.active来实现动态加载配置文件。实现很简单,以springboot+ maven项目为例,走起:一、创建配置文件配置文件结构:这里建三个配置文件,application.yml作为主配置文件配置所有共同的配置;-dev和-local分别配置两种环境下的不同配置内容,如...
我们开发当中一般会有多种运行环境,在各种运行环境中配置文件多少有些不同。我们可以利用spring.profiles.active来实现动态加载配置文件。
实现很简单,以springboot+ maven项目为例,走起:
一、创建配置文件
配置文件结构:这里建三个配置文件,application.yml作为主配置文件配置所有共同的配置;-dev和-local分别配置两种环境下的不同配置内容,如数据库地址等。
application.yml中添加spring.profiles.active配置来动态加载活跃的配置文件:
spring:
profiles:
active: "@spring.active@"
@spring.active@有些情况下不需要加双引号,但是如果抱以下错误就可以通过加双引号来解决。
错误信息:
found character ‘@’ that cannot start any token. (Do not use @ for indentation)
....
二、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中配置指定加载配置文件,指定后勾选功能失效。方法如下:
使用很简单。相信也还有更多的花样可以玩。暂且这些。
四、测试类中对profile的配置
测试类上加入以下配置即可制定配置文件,替换dev即可
@ActiveProfiles("dev")
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)