当前位置: 首页 > news >正文

FeignClient注解及参数问题

SpringCloud微服务

一、前言

在用分布式架构SpringBoot的SpringCloud技术开发过程中,@FeignClient 是一个常用的注解,且很重要的功能。它是Feign客户端提供负载均衡的热插拔注解,通过该注解可以动态代理创建Feign客户端。

简单理解就是,分布式架构服务之间,各子模块系统内部通信的核心。

一般在一个系统调用另一个系统的接口时使用,如下:

注解

`@FeignClient("XXX")
public interface XX{
....
}`

该注解一般创建在 interface 接口中,然后在业务类@Autowired进去使用非常简单方便。

二、问题背景

创建好interface接口后,当然要把调用该服务的接口方法定义出来,该方法对应本FeignClient的controller接口,必须重写该接口方法(返回对象,参数值完全一样)。

启动项目出现如下报错时,咋一看以为是在业务类中调用该接口方法时,传参为空null而报错。

`FactoryBean threw exception on object creation; nested exception is
java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0`

当把传参用数据代替时,重新启动时;任然报如上错误。

贴一个报错全截图

`org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'withdrawCountRecordController': Unsatisfied dependency expressed through field 'withdrawCountService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'withdrawCountServiceImpl': Unsatisfied dependency expressed through field 'cumClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.epaylinks.efps.pas.clr.client.CumClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)`

三、解决办法

在@FeignClien("XX") 接口类中,检查每个方法的参数定义时:

是否有如下情形

`@RequestMapping(value="/XXX/query", method = RequestMethod.GET)
public PageResult query(@RequestParam(required = false) String XXCode,
@RequestParam(value = "XXnName",required = false) String institutionName,
@RequestParam(value = "startTime",required = false) String startTime,`

问题就在这里:

@RequestParam(required = false) String XXCode

这个参数少了个value = "XXCode", 这个是Spring 4.0版本后,@RequestParam 注解对参数传值有了很好的封装特性并严格校验。

改为:@RequestParam(value = "XXCode", required = false) String XXCode

之后,问题完美解决;重启项目正常。

另外,插一句:当在项目多个地方调用同一个@FeignClien("XX")某项目时,在多个包中创建接口,并无影响。

 

既然都看完了整篇文章,相信对你一定有所帮助。原创不易,勿做伸手党。

点击下方【打赏】小编,或者关注公众号给予支持,你们的每一份鼓励都将是小编伟大的动力。

![](https://i-blog.csdnimg.cn/blog_migrate/88649f01dbe9173389580f54ef36cd47.jpeg)同名原创公众号:程序大视界

http://www.jsqmd.com/news/922413/

相关文章:

  • 天赐范式第59天:“控制不动点“vs“数值僵尸“——当流场被钉在临界状态,是死了还是被控住了?
  • idea快速创建SpringCloud项目
  • EldenRingSaveCopier:拯救你的《艾尔登法环》游戏进度的终极指南
  • VUE跨页面传值的精妙
  • 网络技术12-FTP协议详解——传统文件传输的“老派方案“
  • FUXA管道动画制作:从静态流程图到动态工业监控的转变
  • Windows 11安装绕过工具终极指南:让老旧电脑也能流畅升级
  • 抽象之美——万物皆可设计
  • 济南倍乐管家:莱芜专业的深度清洁软装地毯公司选哪家 - LYL仔仔
  • MTK刷机工具终极指南:3步解锁联发科设备救砖与系统修复
  • 2026年宜昌市CPPM报名十大核心问题全流程答疑 - 众智商学院课程中心
  • 别再死记硬背公式了!用Python+PyTorch图解马尔可夫随机场(MRF)在图像去噪中的应用
  • 【Python系列课程】NumPy数组计算(下):向量化运算、广播机制与聚合函数
  • 2026西安曲江家政服务行业观察:唐僧到家等机构如何引领行业规范化发展 - 资讯快报
  • Beyond Compare 5密钥生成器:深度解析Python逆向工程实现方案
  • AI写专著高效之道:借助AI工具,3天完成20万字专著创作!
  • 2026年苏州区域专业防水补漏3家本土合规服务企业全方位分析与场景适配解读 专业防水公司排名推荐(2026年5月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 7步精通思源宋体TTF:开源中文字体终极解决方案
  • Redis安装部署
  • 源码分析【三】ArrayList与LinkedList的比较
  • TVA在传统安防迈向智能物联(AIoT)中的突破与应用(2)
  • LibreDWG完全指南:5个关键优势解决DWG文件处理难题
  • XUnity.AutoTranslator:打破语言壁垒的Unity游戏翻译神器终极指南
  • 老显卡(GTX750/1050)也能玩转AI绘画?手把手教你升级驱动装CUDA11.4
  • 告别低效写作:盘点2026年实力封神的的降AI率平台 - 降AI小能手
  • idea中Maven基本介绍
  • 2026零添加蜂蜜水推荐:彭祖蜜分离式蜂蜜水值得选吗 - 资讯快报
  • 2026年4月市场正规的街舞文化推广基地推荐,开启创意之旅,着力推广街舞天地 - 品牌推荐师
  • 《中间件》——kafka的工作原理解析
  • 2026版机房动环智慧联动管控整体解决方案