Springboot结合Maven的profiles标签实现多环境配置

9 篇文章 0 订阅

在定了目标后,他又制定具体可行的计划,比如每天坚持进入阅览室读书

在实际开发项目中,常常有多种环境,例如:开发、测试、正式等。各个环境之间对应的中间件地址,用户名密码等参数数据也各不相同,Maven提供了标签 profiles 实现了多环境配置,简化了多环境切换的麻烦。

标签 使用在Maven项目的 pom.xml 文件中,具体的使用格式为:

 <profiles>
     <profile>
         <id>dev</id>
         <activation>
             <activeByDefault>true</activeByDefault>
         </activation>
         <properties>
             <project.active>dev</project.active>
             <cnf.redisHost>192.168.12.258</cnf.redisHost>
         </properties>
     </profile>
     <profile>
         <id>pre</id>
         <properties>
             <project.active>pre</project.active>
             <cnf.redisHost>192.168.12.259</cnf.redisHost>
         </properties>
     </profile>
     <profile>
         <id>pro</id>
         <properties>
             <project.active>pro</project.active>
             <cnf.redisHost>127.0.0.1</cnf.redisHost>
         </properties>
     </profile>
 </profiles>

当实际需要切换环境的时候,由于切换的环境需要变化的参数过多和解耦,可以为每个环境分别设置独立的配置文件,公共的配置文件则放在application.properties里。
在这里插入图片描述
同时设置了独立的配置文件,则需要在pom文件加载的时候同时加载这些独立的配置文件,此操作可通过 resources 标签实现

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            //是否替换@xx@表示的maven properties属性值(是否可通过properties读取环境配置的参数)
            <filtering>true</filtering>
            <includes>
                <include>application-${project.active}.properties</include>
            </includes>
        </resource>
    </resources>
</build>

当 filtering 标签设置为 true 时,properties/yml 配置文件就可通过 “@xxx@”这种规则进行读取pom文件配置的参数。

version=@cnf.redisHost@

代码层面的工作已经做完了,接下来是如何进行快速环境的切换,这里有四种方式:

第一种
pom文件的 activation 标签
在这里插入图片描述
第二种:
application.properties配置文件配置,value为环境id

spring.profiles.active=dev

第三种:
配置文件配置,项目启动指定参数进行切换,-P后面为pom文件配置的环境id

mvn spring-boot:run -Ppro

第四种
配置文件配置,项目启动指定参数进行切换,key为任意键

#spring.profiles.active=@key@

在项目启动时,在启动命令后面跟-D进行环境切换指令植入,这里的key和配置文件人家的key一致即可,例如:

mvn spring-boot:run -Dkey=dev

备注:此思想不仅仅局限于环境切换

四种环境切换方式优先级比较

启动参数指定(第三种和第四种) > pom文件约束(第一种) > 配置文件配置(第二种)

补充:

关于配置文件 @xxx@ 格式,此格式是SpringBoot默认的,避免和 ${xxx} 混淆,如需使用 ${xxx} ,在pom文件添加插件即可。

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <configuration>
            <useDefaultDelimiters>false</useDefaultDelimiters>
            <delimiters>
                <delimiter>${*}</delimiter>
            </delimiters>
            <encoding>utf-8</encoding>
        </configuration>
    </plugin>
</plugins>

bilibili账号:段某人
文章持续更新,可以微信扫码关注第一时间阅读
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值