@feignclient名字冲突的解决方案

 更新时间:2021年10月20日 15:39:26   作者:微风灬浮尘  
这篇文章主要介绍了@feignclient名字冲突的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@feignclient名字冲突

在启动springcloud项目是遇到

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

这样一个异常

经过研究,解决方法如下

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

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

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

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

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

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

解决方案

1、添加配置

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

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

在这里插入图片描述

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

@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");
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java服务器端跨域问题解决方案

    Java服务器端跨域问题解决方案

    这篇文章主要介绍了java服务器端跨域问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java集合ConcurrentHashMap详解

    Java集合ConcurrentHashMap详解

    ConcurrentHashMap 是 J.U.C 包里面提供的一个线程安全并且高效的 HashMap,所以ConcurrentHashMap 在并发编程的场景中使用的频率比较高
    2023-01-01
  • SpringBoot JPA sort多属性排序实例

    SpringBoot JPA sort多属性排序实例

    这篇文章主要介绍了SpringBoot JPA sort多属性排序实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java实现统计文档中关键字出现的次数

    Java实现统计文档中关键字出现的次数

    这篇文章主要为大家分享了利用Java语言实现统计关键字在文档中出现的次数的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-05-05
  • Java基础之Integer使用的注意事项及面试题

    Java基础之Integer使用的注意事项及面试题

    这篇文章主要给大家介绍了关于Java基础之Integer使用注意事项及面试题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • 使用java生成激活码和密钥的方法

    使用java生成激活码和密钥的方法

    本文主要介绍了java生成激活码和密钥的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • java局域网聊天小程序

    java局域网聊天小程序

    这篇文章主要为大家详细介绍了java局域网聊天小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • JAVA使用动态代理对象进行敏感字过滤代码实例

    JAVA使用动态代理对象进行敏感字过滤代码实例

    这篇文章主要介绍了JAVA使用动态代理对象进行敏感字过滤代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • JAVA对象JSON数据互相转换的四种常见情况

    JAVA对象JSON数据互相转换的四种常见情况

    这篇文章主要介绍了JAVA对象JSON数据互相转换的四种常见情况,需要的朋友可以参考下
    2014-04-04
  • Spring事务注解@Transactional失效的八种场景分析

    Spring事务注解@Transactional失效的八种场景分析

    最近在开发采用Spring框架的项目中,使用了@Transactional注解,但发现事务注解失效了,所以这篇文章主要给大家介绍了关于Spring事务注解@Transactional失效的八种场景,需要的朋友可以参考下
    2021-05-05

最新评论