You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot升级时spring.sleuth.baggage-keys bean重复定义报错如何解决

同名Bean冲突解决方案(无需开启bean覆盖)

根因说明

名为'spring.sleuth.baggage-keys'的bean已在类路径资源org/springframework/cloud/sleuth/autoconfig/TraceBaggageConfiguration.class中定义,org/springframework/cloud/sleuth/autoconfig/brave/BraveBaggageConfiguration.class中定义的同名bean无法注册,且当前bean覆盖功能已禁用

该报错是Spring Cloud Sleuth 2.2.x版本内置双跟踪实现导致的冲突:版本默认同时支持旧版原生Sleuth跟踪、Brave跟踪两套实现,两套实现的自动配置类都会注册名为spring.sleuth.baggage-keys的bean,Spring Boot 2.4.x默认禁用bean覆盖,因此触发启动失败。

修复步骤

按优先级选择以下方案即可,不需要修改核心依赖版本也可解决:

  • 方案一(修改配置即可,兼容性最好):在项目的application.properties或application.yml配置文件中,显式指定使用Brave作为唯一跟踪实现(Sleuth 2.x官方推荐默认实现),配置内容如下:
    spring.sleuth.tracer.mode=BRAVE
    
    添加配置后会自动屏蔽旧版原生Sleuth的TraceBaggageConfiguration配置类加载,从根源避免同名bean冲突。
  • 方案二(适配Spring Boot 2.4.x官方兼容规范):升级Spring Cloud依赖管理BOM版本到2020.0.6.RELEASE(Spring Boot 2.4.x对应官方适配的Spring Cloud版本),该版本内置的Sleuth 3.0.x已经完全移除了旧版原生跟踪实现,不会再出现两套配置类冲突的问题,同时完全兼容你当前的Spring Boot 2.4.x部署环境。
  • 补充校验:如果执行以上操作后仍有报错,检查项目中是否存在手动导入TraceBaggageConfiguration的自定义配置代码,直接删除该导入逻辑即可。

内容的提问来源于stack exchange,提问作者Josh Austin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:24:06