Feign原理_feign源码

Feign原理_feign源码feign是一种http客户端,可以让你通过简单地注解的方式,调用其他的http服务。feign提供的注解是@FeignClient,一直很好奇feign是怎么生效的,今天跟着代码一块看一下。要想使用feign的话,首先要在项目中打上@EnableFeignClients注解,从代码中可以看到,@EnableFeignClients通过@Import注解引入了Fei…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

       feign是一种http客户端,可以让你通过简单地注解的方式,调用其他的http服务。feign提供的注解是@FeignClient,一直很好奇feign是怎么生效的,今天跟着代码一块看一下。

       要想使用feign的话,首先要在项目中打上@EnableFeignClients注解,从代码中可以看到,@EnableFeignClients通过@Import注解引入了FeignClientsRegistrar类,FeignClientsRegistrar实现了三个类,ImportBeanDefinitionRegistrar、ResourceLoaderAware、EnvironmentAware,其中ImportBeanDefinitionRegistrar的注释是这样的:在处理Configuration类的时候,那些需要注册额外的bean定义的类型来实现这个接口。在FeignClientsRegistrar的实现中,registerBeanDefinitions干了两件事,第一个是通过获取EnableFeignClients的配置参数,来做feign全局的默认配置,第二个是扫描所有标注了@FeignClient注解的接口的配置项和参数,然后为每个接口注册一个FeignClientFactoryBean的实例到容器中。

       我们来看FeignClientFactoryBean的定义,它实现了三个接口,FactoryBean<Object>, InitializingBean, ApplicationContextAware,这里我们主要关注FactoryBean接口,它的注释是,在一个BeanFactory内,作为单个对象的工厂的类需要实现这个接口。如果一个bean实现了这个接口,它会作为工厂出现,而不是直接作为bean实例暴露自己。所以FeignClientFactoryBean可以看做是创建FeignClient的工厂,它的主要逻辑是getObject()方法,这个方法的主要逻辑就是根据@FeignClient的主要注解参数,来生成对应的实例。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186074.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一步一步写算法(洗牌算法)[建议收藏]

    一步一步写算法(洗牌算法)

    2021年12月17日
    44
  • 软件开发入门自学指南[通俗易懂]

    软件开发入门自学指南[通俗易懂]每天都看到很多对编程感兴趣的人在问是不是可以自学软件开发,或者应该怎么自学编程才能入门。在这篇文章里,我将尝试重现一个初学者在学习计算机编程时可能会碰到的问题,并尽量提供相应的解决思路,希望对初学者有所帮助。如果你在看完这篇文章后还是有些疑惑,欢迎点击这里咨询我。目录编程可以自学吗?学习编程需要什么基础?什么是编程语言?什么是程序?我应该学习哪种编程语言?编程的核心思维是什…

    2022年4月19日
    51
  • CreateCompatibleDC与BitBlt绘图

    CreateCompatibleDC函数功能:该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。函数原型:HDCCreateCompatibleDC(HDChdc);参数:hdc:现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NU

    2022年4月8日
    39
  • 薪资涨幅30% 怎么算(如何把自己的薪资提高)

    列出薪金高于在部门30bySamWilliams通过山姆·威廉姆斯我如何在五个月内将薪金提高一倍并获得一份了不起的工作(HowIDoubledmySalaryinFiveMonthsandGotanAmazingJob)SixmonthsagoIquitmyjobasajuniorJavaScriptdeveloperandtrav…

    2022年4月15日
    112
  • nginx 转发websocket_nginx配置websocket

    nginx 转发websocket_nginx配置websocketnginx入门之简易,相信用过的同学都会有体会,没有复杂安装,没有庞大的配置文件,在nginx.conf配置一下,就可以提供不同类型的服务。本文简单描述下如何转发(反向代理)一个socket服务。将要配置一个如上图示的转发服务。在nginx.conf文件,与events平行的级别,配置一个stream#evnets是配置文件已有内容events{ worker_connec…

    2022年10月9日
    0
  • ov7725摄像头模块_寄存器和内存

    ov7725摄像头模块_寄存器和内存上图是OV7725实现的整体框架,有点丑。FPGA描述SCCB时序,完成OV7725的配置,配置完成之后,OV7725sensor输出PCLK和href,vsync以及cmos_data信号。经过格式的转换单元,将格式转换后的数据送给SDRAM单元,最终实现VGA/LCD/上位机显示。 之前已经提及过,SCCB接口主要实现sensor内部各种寄存器的配置,如AGC,AWB,gama,c

    2022年9月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号