Spring Boot多环境文件夹

1,506 阅读1分钟

不同于在application.properties中配置spring.profiles.active=xxx,这里是用文件夹配置,能容纳更多的配置文件。需要结合Maven的项目pom.xml文件,通过profiles标签设定, mvn命令激活,resources标签读取。

Step 1: 通过profiles标签设定环境ID,和环境对应的属性名、属性值。

<profiles>
    <profile>
        <!--不同环境Profile的唯一id-->
        <id>dev4-ha</id>
        <properties>
            <!--profiles.active是自定义的属性名(名字随便起),可以有多个-->
            <profiles.active>dev4-ha</profiles.active>
        </properties>
        <!--设置默认激活这个环境-->
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <profiles.active>test</profiles.active>
        </properties>
    </profile>
    <profile>
        <id>uat</id>
        <properties>
            <profiles.active>uat</profiles.active>
        </properties>
    </profile>
</profiles>

Step 2: 构建时mvn命令激活某个环境

maven clean install -P uat (uat为Step1中的id标签的内容)

Step 3: 激活后,resource标签就能够读取Step1中设定的属性名。

<resources>
    <resource>
        <directory>src/main/resources/</directory>
        <includes>
            <include>messages/*</include>
            <include>*.xml</include>
            <include>security/*</include>
            <include>poi/*</include>
        </includes>
    </resource>
    <resource>
        <!--读取属性名-->
        <directory>src/main/resources/env/${profiles.active}</directory>
    </resource>
</resources>

Step 4: 通过每个文件夹里的application.properties文件设置spring.profiles.active=xxx,xxx,xxx... 就可以激活文件夹下的多个properties配置文件。