bean 'spring.sleuth.baggage-keys' 已经定义
Posted
技术标签:
【中文标题】bean \'spring.sleuth.baggage-keys\' 已经定义【英文标题】:bean 'spring.sleuth.baggage-keys' already definedbean 'spring.sleuth.baggage-keys' 已经定义 【发布时间】:2021-12-27 20:20:04 【问题描述】:我正在将应用程序从 Spring Boot 1.x 升级到 Spring Boot 2.x。当我尝试运行现有的(和以前工作的)单元测试时,我看到了以下输出:
***************************
APPLICATION FAILED TO START
***************************
Description:
The bean 'spring.sleuth.baggage-keys', defined in class path resource [org/springframework/cloud/sleuth/autoconfig/brave/BraveBaggageConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/cloud/sleuth/autoconfig/TraceBaggageConfiguration.class] and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
我的 Gradle 项目使用以下实现:'org.springframework.cloud:spring-cloud-sleuth-core:2.2.8.RELEASE'
我尝试检查 the Gradle dependencies task 以确保 spring-cloud-sleuth-core 和朋友的版本没有冲突。我还查看了this post 和this post,但它们并没有解决我的问题。
我需要避免覆盖 bean,我目前的部署目标仅限于 Spring Boot 2.4.x。
【问题讨论】:
【参考方案1】:检查compatibility matrix,您应该将 Spring Cloud 2020.0.x aka Ilford (Sleuth 3.x) 与 Spring Boot 2.4(或 2.5)一起使用。
Sleuth 2.2.8 是 Spring Cloud Hoxton,它与 Boot 2.4 不兼容。
【讨论】:
以上是关于bean 'spring.sleuth.baggage-keys' 已经定义的主要内容,如果未能解决你的问题,请参考以下文章