1、SpringBoot多环境配置文件
日常开发工作中,开发和生产环境是隔离的,那么对应的各种配置数据也是不一样的,SpringBoot提供了不同环境的配置数据管理,比如当前目录结构下有两套配置文件,如图:
在开发环境我们可以使用 application-dev.properties
,而部署到正式环境中时,可以指定 application-prod.properties
如何指定对应的配置文件?有以下几种方式
2、激活指定的profile
在配置文件
application.properties
中指定:spring.profiles.active=dev
命令行:
java -jar springboot-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;
可以直接在测试的时候,配置传入命令行参数虚拟机参数:
-Dspring.profiles.active=dev
3、Maven构建指定profile
上述步骤2中激活指定的profile,但是最终的文件中都包含了所有properties文件,target目录结构如下:
但是如果编译后的jar包不包含非当前环境需要的properties文件,可以通过maven的的方式来构建,详细步骤如下:
(1)application.properties改为如下代码:
spring.profiles.active=@build.profile.id@
(2)pom.xml增加如下代码:
<project>
...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>application-*.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>application-${build.profile.id}.properties</include>
</includes>
</resource>
</resources>
</build>
<profiles>
<!--开发环境-->
<profile>
<id>dev</id>
<properties>
<build.profile.id>dev</build.profile.id>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--生产环境-->
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
</properties>
</profile>
</profiles>
</project>
(3)通过如下maven命令执行:
通过IDEA中执行如下操作:
在idea的maven窗口的lifecycle,在clean上右键弹出如下界面
选择:
Create Run/Debug Configuration
,弹出如下界面,并在 Command Line 中输入:clean install -DskipTests -P prod -f pom.xml
确认后,在maven的窗口中新增配置:
然后双击执行该命令,执行命令之后打开target目录,可以看到只包含了
application-prod.properties
文件,多余的文件没有包含在里面;
上述操作比较麻烦,可以直接通过命令:mvn clean install -DskipTests -P prod
,效果同上面