SpringBoot多环境配置文件


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,效果同上面


文章作者: Qing Fan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Qing Fan !
  目录