Skip to content

The bean '*.FeignClientSpecification' could not be registered.

🏷️ Spring Boot Feign

当多个 @FeignClient 注解使用相同的 name 属性时,应用启动时报了如下错误:

The bean 'Provider_A.FeignClientSpecification' could not be registered. A bean with that name has already been defined and overriding is disabled.

@FeignClient 的定义如下:

java
@FeignClient(name = MyServiceName.PROVIDER_A)
public interface OneFeignClient {
}

@FeignClient(name = MyServiceName.PROVIDER_A)
public interface AnotherFeignClient {
}

参考这篇博客,只需要将 @FeignClient 注解的 contextId 属性指定为不同的值即可避免这个错误。

java
@FeignClient(name = MyServiceName.PROVIDER_A, contextId = "one-context")
public interface OneFeignClient {
}

@FeignClient(name = MyServiceName.PROVIDER_A, contextId = "another-context")
public interface AnotherFeignClient {
}