gpt4 book ai didi

@feignclient名字冲突的解决方案

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章@feignclient名字冲突的解决方案由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

@feignclient名字冲突

在启动springcloud项目是遇到 。

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true 。

这样一个异常 。

经过研究,解决方法如下

1、在配置文件中增加配置 。

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

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

?
1
@FeignClient (value = “provider-demo3-ribbon”, path = “/dev”, contextId=“tt1”)

@FeignClient同一个name,多个配置类

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

解决方案

1、添加配置 。

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

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

@feignclient名字冲突的解决方案

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Import (FeignClientsConfiguration. class )
class FooController {
     private FooClient fooClient;
     private FooClient adminClient;
         @Autowired
     public FooController(Decoder decoder, Encoder encoder, Client client, Contract contract) {
         this .fooClient = Feign.builder().client(client)
                 .encoder(encoder)
                 .decoder(decoder)
                 .contract(contract)
                 .requestInterceptor( new BasicAuthRequestInterceptor( "user" , "user" ))
                 .target(FooClient. class , "https://PROD-SVC" );
         this .adminClient = Feign.builder().client(client)
                 .encoder(encoder)
                 .decoder(decoder)
                 .contract(contract)
                 .requestInterceptor( new BasicAuthRequestInterceptor( "admin" , "admin" ))
                 .target(FooClient. class , "https://PROD-SVC" );
     }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/a854517900/article/details/107387309 。

最后此篇关于@feignclient名字冲突的解决方案的文章就讲到这里了,如果你想了解更多关于@feignclient名字冲突的解决方案的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com