resources下新建application.yml、application-dev.、application-test.yml、application-pro.yml

  • application.yml 项目统一配置,不管是开发环境、测试环境或生产环境,都无需更改的配置,如mybatis配置、shiro配置、jwt配置等等
  • application-dev.yml 开发环境,配置数据库连接、redis连接、ftp、fastdfs等等
  • application-test.yml 测试环境,配置数据库连接、redis连接、ftp、fastdfs等等
  • application-pro.yml 生产环境,配置数据库连接、redis连接、ftp、fastdfs等等
    在这里插入图片描述
    在web项目的pom.xml文件里,增加如下配置
<profiles>
        <!--开发环境 -->
        <profile>
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!--测试环境 -->
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
        <!--生产环境 -->
        <profile>
            <id>pro</id>
            <properties>
                <profiles.active>pro</profiles.active>
            </properties>
        </profile>
    </profiles>

在web项目的pom.xml文件build节点下,增加如下配置,开启

<build>
   <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!--用于替换resources里的变量-->
                <filtering>true</filtering>
            </resource>
        </resources>

    .........其他配置
</build>

在application.yml里增加如下配置
在这里插入图片描述
其中spring.profiles.active:代表当前激活的配置文件,根据上面的配置,会出现三个值:dev、test和pro,在运行/打包时会自动将@profiles.active@替换为这三个值,默认是dev

在开发环境,配置如下:
在这里插入图片描述
我们在本机开发时,如果用Application类的方式启动项目,会发现该配置已经自动替换成功了:
在这里插入图片描述
如果在开发时用的是外部tomcat启动项目,会发现此配置没有被替换,会导致application-dev.yml的配置无法加载,此问题暂未找到有效的解决办法。

在打包部署时,就可以指定对应的配置文件

mvn clean package         默认激活开发环境配置
mvn clean package -Pdev   指定激活开发环境配置
mvn clean package -Ptest  指定激活测试环境配置
mvn clean package -Ppro   指定激活生产环境配置
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐