spring.cloud.config.label多标签优先级及生效规则咨询
Spring Cloud Config:多Label配置的生效规则
核心结论
当配置spring.cloud.config.label=tag-1,tag-2,tag-3时,只有列表中第一个存在且能成功加载的标签会生效:
- 如果
tag-1存在,直接加载该标签下的配置,tag-2和tag-3不会被处理; - 如果
tag-1不存在,才会尝试加载tag-2,以此类推; - 所有存在的标签不会合并配置,也不会出现后面的标签覆盖前面的情况。
官方文档依据
官方文档对该配置的说明如下:
您可以通过设置spring.cloud.config.*(*为name、profile或label)来覆盖所有配置。label可用于回滚到之前的配置版本。在默认配置服务器实现中,它可以是git标签、分支名称或提交ID。label也可以设为逗号分隔的列表,这种情况下会逐个尝试列表中的项直到成功。此行为在功能分支开发时很有用,例如您可能希望将配置label与分支对齐但设为可选(此时可使用spring.cloud.config.label=myfeature,develop)。
这段描述明确了多label的逻辑是**“逐个尝试直到成功”**:比如配置myfeature,develop时,只有当myfeature分支不存在/无法加载时,才会 fallback 到develop分支;若两个分支都存在,只会使用排在前面的myfeature的配置,不会合并两者的内容。
内容的提问来源于stack exchange,提问作者bhantol
相关产品推荐
相关产品推荐

