配置多种环境配置文件

多个环境不同配置文件实现

​ 在开发中会遇到要把项目部署到不同的环境,一般把项目部署到服务器上,需要改数据库配置,redis配置,dubbo配置等等,这个时候如果只有一套配置文件,那部署前要把配置文件里的路径,ip都要改一遍,这样人工的修改难免会出现漏改,错改的情况,再遇到集群部署,分布式部署,一错再改就不好改了,所以自然想到如果可以有2套不同环境的配置文件就好了。

​ 在spingboot中提供了很简单的解决办法,使用spring.profiles.active=test

在application.yml中定义一个

spring:
  profiles:
    active: dev

然后再创建application-dev.yml和application-pro.yml配置文件。如图:
在这里插入图片描述

那这样在本地开发的时候,就用application-dev.yml。部署到服务器上时,在application.yml里改一下:

spring:
  profiles:
    active: pro

那这样打包的自动用application-pro.yml这个配置文件。

接下来又遇到一个问题,当开发一个多个模块分开,分布式的程序的时候的就很麻烦,部署的时候就需要一个模块一个模块改配置文件里的spring.profiles.active的值,这显然很麻烦。

当开发分布式部署的程序试,一般有一个总的项目pom文件,然后在这个pom文件里定义配置信息,然后通过动态的激活某一个配置来实现统一改所有的配置文件。

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <activeProfile>dev</activeProfile>
        </properties>
    </profile>
    <profile>
        <id>pro</id>
        <properties>
            <activeProfile>pro</activeProfile>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <activeProfile>test</activeProfile>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
</profiles>

如上,定一个3个配置信息,通过设置activeByDefault来激活其中的配置,然后通过maven-resources-plugin插件和resource的filtering属性用来表示资源文件中的占位符是否需要被替换来实现配置文件的替换。

现在application-pro.yml这个文件需要改一下:

spring:
  profiles:
    active: ${activeProfile}

然后在各个模块的pom文件里加上:

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <excludes>
            <exclude>application.yml</exclude>
            <exclude>application-dev.yml</exclude>
            <exclude>application-pro.yml</exclude>
            <exclude>application-test.yml</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
            <include>application.yml</include>
            <include>application-${activeProfile}.yml</include>
        </includes>
    </resource>
</resources>

上面是防止打包的时候,打包其他的环境的配置文件。

到此为止,基本满足所有的项目的需求了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Qiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值