springboot多模块多环境配置文件问题(动态配置生产和开发环境),看这一篇就够了

本文详细介绍了SpringBoot在多模块环境下如何配置不同的环境(开发、生产等),包括通过环境变量设置spring.profiles.active,以及POM配置、系统环境变量配置。并讨论了配置文件的加载顺序,如application.yml、application-dev.yml、application-prod.yml等,强调了文件顺序对配置生效的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种情况:

spring.profiles.active=环境变量

配置两个环境的,可根据实际需要增加环境模式(开发环境dev,测试环境test,回归坏境retu,预生产环境pre,生产环境prod,等等)

dev代表开发环境:

prod代表生产环境

pom.xml里面配置profiles:

<profiles>
    <profile>
        <id>dev</id>
        <activation>
         <!--  默认激活-->
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <spring.profiles.active>dev</spring.profiles.active>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <spring.profiles.active>prod</spring.profiles.active>
        </properties>
    </profile>
</profiles>

系统环境变量配置:

 

在本地,如果在这些文件里面配置端口和路径:

appilacton.yml:

server:
  port: 8087
  servlet:
    context-path:  /miservice

application-dev.yml:

server:
  port: 8088
  servlet:
    context-path:  /miservice-dev

application-prod.yml:

server:
  port: 8089
  servlet:
    context-path:  /miservice-prod

有效的是:8088那个配置。

在本地,如果分环境没有配置,就以主环境为主:

appilacton.yml:

server:
  port: 8087
  servlet:
    context-path:  /miservice

application-dev.yml:


 

application-prod.yml:

server:
  port: 8089
  servlet:
    context-path:  /miservice-prod

则是8087这个是有效的。

小结1:

application.yml引入配置为:

spring:
        profiles:
           active:   ${env}

即:配置读取顺序为:application.yml>>application-dev.yml

 

第二种情况:

如果想多个模块的配置文件都起作用,可将application.yml文件配置到具体的模块去

spring:
        profiles:
           active:   miservice, ${env}

 

 

 

在application.yml和application-miservice.yml和application-dev.yml三个文件中:如果都有端口或路径配置,则读取application-dev.yml里面的配置,关闭application-dev.yml里面的配置则读取application-miservice.yml里面的配置,最后读取application.yml

里面的配置。

application.yml引入配置为:

spring:
        profiles:
           active:   miservice, ${env}

即:配置读取顺序为:application-dev.yml>>application-miservice.yml>>application.yml

修订一下:上面的结论是刚开始总结的,后面发现读取顺序是按文件的顺序从下到上读取的。即按结构顺序

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值