项目启动时候出现如下错误:
2023-01-05 15:22:06.272 ERROR 9948 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
The bean 'admin-service.FeignClientSpecification' could not be registered. A bean with that name has already been defined and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
是因为同一个微服务有多个FeignClient导致的,看一下@FeignClient
的一些属性
- value/name:指定提供者的微服务名称
- url:直接指定请求的路径地址
- value/name:指定提供者的微服务名称,把name作为bean注入(错误在这里,重复)
- fallback:指定发送异常调用或者超时时应该调用那个类来执行备用方法
- fallbackFactory:提供统一的异常熔断处理,避免重复代码的编写
- path:当服务提供者使用了server.servlet.context-path时
- contextId:如果存在,它将用作bean名称而不是name。(解决办法)
使用不同的contextId可以解决“微服务中存在多个FeignClient接口调用同一个服务提供者时的场景”