我们都知道springboot项目有个默认的配置文件,application.yml或者application.property,通常一个项目有三种环境,本地环境dev,测试环境beta,生产环境prod。配置文件中有些变量是需要根据环境不同配置不一样的值的,比如数据库地址。所以我们一般会针对各个环境准备一个有后缀的配置文件,例如:
那么我们怎么才能指定使用某个后缀的配置呢?下面介绍几种方式。
第一种
如果在自己本地用IDEA开发,直接在configurations里面配置想使用的后缀就行了,如图
第二种
在默认的yml文件里面配置,property文件里面就是spring.profies.active = beta
前面俩种都有弊端,第一种是本地开发环境下,第二种每次打包我还得根据环境去修改配置文件的面的属性,有点麻烦,而且有时候会忘记。
第三种
在启动命令中加参数
java -jar XX.jar --spring.profiles.active=beta
第四种
这种方式需要使用maven管理,首先在maven的pom文件中添加以下配置
<profiles>
<!-- 开发 -->
<profile>
<!-- profile的id -->
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
</profile>
<!-- 测试 -->
<profile>
<!-- profile的id -->
<id>beta</id>
<properties>
<profiles.active>beta</profiles.active>
</properties>
</profile>
<!-- 生产 -->
<profile>
<id>pro</id>
<properties>
<profiles.active>pro</profiles.active>
</properties>
</profile>
</profiles>
然后默认配置文件中的属性配置成变量形式
spring:
profiles:
active: @profiles.active@
在用maven命令打包的时候在命令中添加参数-P
mvn clean package -P beta -Dmaven.test.skip=true -U
这样打出来的jar包中的application.yml中的变量会赋值成beta,运行的时候自然就用了beta后缀的配置文件。