Spring 2.4.x 之后配置文件激活方式变化须知

本文介绍了Spring从2.4版本后配置文件的三种激活方式:传统的`spring.profiles.active`方式,新增的K8S风格多文档YAML激活,以及可能冗余的混合激活方式。强调了`spring.profiles.active`与`spring.config.activate.on-profile`不能同时使用,并通过示例展示了不同激活方式的效果。

1.1 第一种兼容之前传统激活方式

application.yaml

#第一种写法 传统激活方法
spring:
  profiles:
    active: dev

application-dev.yaml

server:
  port: 6001

application-test.yaml

server:
  port: 7001

1.2 第二种新增支持K8S配置文件语法激活方式

这种场景是,假设我们有一个 多文档 YAML文件(K8Syaml文件就是这样,一个文件由三个逻辑文档组成,由 --- 分隔)

applicaiton.yaml

spring:
  profiles:
   active: dev
---
spring:
  config:
    activate:
      on-profile:
        - dev
server:
  port: 6001
---
spring:
  config:
    activate:
      on-profile:
        - test
server:
  port: 7001

值得注意的是,spring.profiles.active属性与spring.config.activate.on-profile不支持在同一个配置中同时使用.
即,比如下面这种写法会抛出异常:

test=value
#---
spring.config.activate.on-profile=dev
spring.profiles.active=local # will fail 
test=overridden value

1.3 第三种画蛇添足激活方式

application.yaml

#第一种写法 传统激活方法
spring:
  profiles:
    active: dev

application-dev.yaml

spring:
  config:
    activate:
      on-profile:
        - dev
server:
  port: 6001

application-test.yaml

spring:
  config:
    activate:
      on-profile:
        - test
server:
  port: 7001

这种方式其实有点画蛇添足。
因为当使用这种方式的时候,会首先根据spring.profiles.active激活的环境,通过文件名称去选择激活配置文件。
经过测试发现,如果application-dev.yaml 文件中我们使用spring.config.active.on-profile=test 那么该激活配置是无效的,加载端口是8080

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极客星云

谢谢认可,希望对你的学习有帮助

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

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

打赏作者

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

抵扣说明:

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

余额充值