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

被折叠的 条评论
为什么被折叠?



