@feignclient名字冲突的解决方案是什么

  介绍

今天就跟大家聊聊有关@feignclient名字冲突的解决方案是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

@feignclient名字冲突

在启动springcloud项目是遇到

考虑重命名> spring.main。allow-bean-definition-overriding=true

2,在feignclient注解中加个字段,红色部分

@FeignClient (=value “provider-demo3-ribbon”, path =,“/dev, contextId=皌t1”)

@FeignClient同一个名字,多个配置类

我使用的spring-cloud-starter-openfeign的版本是2.0.0,然后使用@FeignClient的时候是不能一个名字多个配置类的,后来也是从网络查找了各种网友的方法,反正就是歪门邪道的各种都有。但是还是官网给的方法比较靠谱。

解决方案

1,添加配置

spring.main.allow-bean-definition-overriding=true

2,这样允许同名的bean存在,但是不安全,不推荐。(来自网络,未测试)在openfeign高版本2.2.1中@FeignClient里面添加了新属性contextId,这样使用这个属性也是可以的,官网有这个例程。

 @FeignClient名字冲突的解决方案是什么

3,官网提供的另外一种就是手动创建假装客户端,如下就是,(官网)

@ import (FeignClientsConfiguration.class)   class  FooController  {   ,,,private  FooClient  fooClient;   ,,,private  FooClient  adminClient;   ,,,,,,@ autowired   ,,,public  FooController (Decoder ,解码器,Encoder 编码器,,Client 客户,,Contract 合同),{   ,,,,,,,this.fooClient =, Feign.builder () .client(客户端)   ,,,,,,,,,,,,,,,.encoder(编码器)   ,,,,,,,,,,,,,,,.decoder(解码器)   ,,,,,,,,,,,,,,,.contract(合同)   ,,,,,,,,,,,,,,,.requestInterceptor (new  BasicAuthRequestInterceptor (“user",,“user"))   ,,,,,,,,,,,,,,,.target (FooClient.class,,“; https://PROD-SVC");   ,,,,,,,this.adminClient =, Feign.builder () .client(客户端)   ,,,,,,,,,,,,,,,.encoder(编码器)   ,,,,,,,,,,,,,,,.decoder(解码器)   ,,,,,,,,,,,,,,,.contract(合同)   ,,,,,,,,,,,,,,,.requestInterceptor (new  BasicAuthRequestInterceptor (“admin",,“admin"))   ,,,,,,,,,,,,,,,.target (FooClient.class,,“; https://PROD-SVC");   ,,,}   }

看完上述内容,你们对@feignclient名字冲突的解决方案是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

@feignclient名字冲突的解决方案是什么