spring.profiles.active=@profiles.active@的含义

doMore 2,176 2020-02-20

spring.profiles.active=@profiles.active@ ,其实是配合 maven profile 进行选择不同配置文件进行启动。

当执行

mvn clean package -P test 命令时, @profiles.active@ 会替换成 test
springboot 项目 pom 配置样例,默认激活的是localhost环境配置
<profiles>
        <profile>
            <id>local</id>
            <properties>
                <env-dir>local</env-dir>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>dev</id>
            <properties>
                <env-dir>dev</env-dir>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <env-dir>test</env-dir>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <env-dir>prod</env-dir>
            </properties>
        </profile>
    </profiles>

可以再resources文件中专门放一个文件夹存放配置文件,如下:environments文件就是专门用来存放不同环境配置的文件夹。

 <build>
        <finalName>${project.artifactId}</finalName>
        <resources>
            <resource>
                <directory>src/main/resources/environments/${env-dir}</directory>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <!--排除其他环境配置文件 -->
                    <exclude>environments/**</exclude>
                </excludes>
            </resource>
        </resources>
</build>