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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下如何完全删除用户

    linux下如何完全删除用户转载:http://blog.51cto.com/wutengfei/19234461、首先进入系统创建一个用户  [root@localhost/]#useraddhaha  #创建用户 haha是用户名   [root@localhost/]#passwdhaha  #为该用户设置密码  更改用户haha的密码。  新的密码:*****…

    2022年6月4日
    35
  • docker 命令大全_常用docker命令

    docker 命令大全_常用docker命令文章目录Docker——Docker常用命令1、后台启动2、查看日志3、查看进程4、查看元数据5、在运行的容器中执行命令6、连接到正在执行的容器7、数据拷贝Docker——Docker常用命令1、后台启动语法:dockerrun-d镜像名使用实例:以后台方式运行一个容器:dockerrun-dcentos注意:当我们以后台方式启动一个容器时,就必须要有一个前台进程,否则docker容器发现没有应用,就会自动停止。如上图所示,我们在以后台方式运行一个容器后,再查看当

    2025年12月11日
    2
  • CNS服务器搭建(配合百度直连)[通俗易懂]

    CNS服务器搭建(配合百度直连)[通俗易懂]CNS服务器搭建(配合百度直连)

    2025年8月2日
    3
  • 使用treeNMS管理及监控Redis

    使用treeNMS管理及监控Redis

    2021年11月3日
    35
  • 《深入浅出WPF》——模板学习

    《深入浅出WPF》——模板学习一、前言    图形用户界面(GUI,GraphicUserInterface)应用较之控制台界面(CUI,CommandUserInterface)应用程序最大的好处就是界面友好、数据显示直观。CUI程序中数据只能以文本的形式线性显示,GUI程序则允许数据以文本、列表、图形等多种形式立体显示。  用户体验在GUI程序设计中起着举足轻重的作用——用户界面设计成什么样子看上去才够漂亮?控件如何安排才简单易用并且少犯错误?(控件并不是越复杂

    2022年7月19日
    37
  • 湖南省第七届大学生计算机程序设计竞赛 多连块拼图 (模拟)

    湖南省第七届大学生计算机程序设计竞赛 多连块拼图 (模拟)

    2021年12月16日
    67

发表回复

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

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