首页 > 其他分享 >OpenFeign 接口调用问题及解决方案

OpenFeign 接口调用问题及解决方案

时间:2023-11-10 09:01:16浏览次数:32  
标签:容器 overriding OpenFeign 解决方案 接口 bean contextId value

问题描述

如果在同一个工程中出现两个 OpenFeign 接口使用一样的服务名称会报以下错误:

Description:
The bean 'optimization-user.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

原因分析

原因是 FeignCilent 注解注入到容器中底层源码默认首先使用的是属性 value 的值作为 bean 的名称注入到Spring容器中,两个相同名字注入到 SpringIoC 容器中导致重复注入。

解决方案

方式一

在配置文件中加入下面的配置,作用是允许出现beanName一样的BeanDefinition,可以解决一种报错问题。

spring.main.allow-bean-definition-overriding=true
方式二

每一个 Client 手动指定不同的 ContextId

通过阅读源码可以知道,如果配置了contextId 这个属性,就会采用 contextId 作为 bean 的名称注入进容器中,如果没有配置就会去找value 然后是 name,最后是 serviceId(此属性已经废弃)

@FeignClient(value = "stock-service",contextId = "StockClientFeignEx")

另外在注册 FeignClient 中,这个属性还会作为 Client 别名的一部分,如果配置了 qualifier,会有限使用 qualifier 作为别名。

标签:容器,overriding,OpenFeign,解决方案,接口,bean,contextId,value
From: https://www.cnblogs.com/binbingg/p/17823323.html

相关文章

  • Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍
    Go接口:Go中最强大的魔法,接口应用模式或惯例介绍目录Go接口:Go中最强大的魔法,接口应用模式或惯例介绍一、前置原则二、一切皆组合2.1一切皆组合2.2垂直组合2.2.1第一种:通过嵌入接口构建接口2.2.2第二种:通过嵌入接口构建结构体类型2.2.3第三种:通过嵌入结构体类型构建新结构......
  • 接口
      ......
  • Kali之sqlmap更新失败解决方案
    ​新配置的kali发现sqlmap版本过低,且update命令更新失败就很烦。但是经过几分钟还是找到了解决方案,发出来让更多人看到。首先我们要先找到sqlmap的安装位置,一般情况下应该是在/usr/share下sudofind/-namesqlmap/usr/share/sqlmap #在这里我们直接干掉他     ......
  • 商城系统 “牵手” 淘宝 API 接口 php java sdk
    随着互联网的快速发展,网络购物已成为人们日常生活中不可或缺的一部分。淘宝作为中国最大的电商平台之一,其商城系统中详情页面的重要性日益凸显。本文将阐述淘宝详情在商城系统中的重要性,从用户角度、商家角度和商城运营角度进行分析,并探讨如何优化详情页面,提升用户转化率和购物体验......
  • VR虚拟现实原型制作-应用及解决方案的特点
    VR虚拟现实原型制作利用VR虚拟现实软件进行原型制作可以用于增强原型测试期间的沉浸感,减少产品设计迭代次数,并将与产品原型制作相关的成本降低40-65%。VR虚拟现实原型制作市场规模用于原型制作的虚拟现实(VR)市场在2017年估计为2.104亿美元,预计到2025年将以19.4%的......
  • win10暂停更新已经达到暂停限制怎么办 win10暂停更新已经达到暂停限制解决方案
    有的win10用户并不想更新系统,但是系统提示暂停更新已经达到暂停限制了,这种情况要怎么办呢?你先断网,然后打开时间和语言面板,将“自动设置时间”的开关关掉,之后手动设置时间为想要的年份,接着再开启暂停更新,然后重新联网、重新打开自动设置时间,这个时候暂停更新已经可以持续到你设置的......
  • 应用案例 | 基于三维机器视觉的发动机缸体上料解决方案
    Part.1 背景近年来,随着科技的日新月异,自动化和智能化系统的应用,逐渐成为制造业提高生产效率和产品质量的重要手段。缸体是发动机的重要组成部分,结构、形状多样,其质量和精度对发动机性能和安全性保障至关重要。发动机缸体的上料环节对其质量和精度的影响很大,因此需格外注意。传统的......
  • 应用案例|基于三维机器视觉的软包破袋系统应用解决方案
    Part.1 前言近年来,随着工业自动化与物流技术的不断发展,社会生活水平提高,各行各业持续稳定发展,生产规模不断扩大,传统的人工操作已难以适应大规模的作业需求。长此以往,如何使用自动化设备提高物流效率,减少人工成本,成为目前物流行业最关心的问题。Part.2 三维机器视觉助力自动化为实......
  • 企业邮箱本地私有化部署解决方案
    随着互联网化进程不断深入,加快推进企业信息化系统建设,已经成为提高企业核心竞争力的重要途径。企业对企业邮箱系统的需求越来越大,企业邮箱系统作为企业级通讯工具中的利器,在协同办公和内外业务交流上发挥着无可替代的巨大作用。由于不同企业对邮箱系统的需求也各有不同,如有的企业对......
  • SPI接口的ADC驱动调试
    SPI接口的ADC驱动调试背景最近在学习IIO子系统,顺带调试了个SPI接口的ADC驱动,所以在这简单记录下。这里只简单介绍了适配一个简单SPI接口ADC驱动的流程,不过多深入框架子系统,更多关于IIO子系统的介绍,请见下一篇:驱动开发dtsdts主要修改或新增以下几点:spimaster控制器相关配置sp......