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的主要注解参数,来生成对应的实例。

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Oracle 11g安装及配置详解

    Oracle 11g安装及配置详解1、点击setup.exe文件2、处理[INS-13001]环境不满足最低要求(1)首先,打开解压后的database文件夹,找到stage文件夹,然后cvu,找到cvu_prereq.xml文件,用记事本打开,添加以下代码:&lt;OPERATING_SYSTEMRELEASE="6.2"&gt;&lt;VERSIONVALUE="3"/&gt;&…

  • 旅游管理系统

    旅游管理系统旅游管理系统介绍要求:ER图代码介绍高级数据库布置的实验作业要求:题目:设计与实现一个旅游预订系统,该系统涉及的基本信息有航班,出租车,宾馆和客户等数据信息。实体和其特征属性举例如下:FLIGHTS(StringflightNum,intprice,intnumSeats,intnumAvail,StringFromCity,StringArivCity);H…

  • python初级:基础知识学习-变量、数据类型、运算符、选择结构

    python初级:基础知识学习-变量、数据类型、运算符、选择结构

  • html中怎么让表格居中_html表格上下居中

    html中怎么让表格居中_html表格上下居中回答:IE6/7及IE8混杂模式中,text-align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin-left:Auto;margin-right:Auto”。但这个方式IE6/IE7/IE8的混杂模式中不支持,所以还要设置父容器的”text…

  • pycharm多行代码同时注释、去除注释_解除注释的快捷键

    pycharm多行代码同时注释、去除注释_解除注释的快捷键1.单行多行注释快捷键:ctrl+/2.取消单行多行注释快捷键:ctrl+/

  • WebApp 开发框架推荐以及优缺点分析[通俗易懂]

    WebApp 开发框架推荐以及优缺点分析[通俗易懂]不用盲目的百度和问大神们WebApp开发使用哪个框架最好?等等问题。在此,小编尽量解答各位的WebApp 问题。根据国内js大神以及有过WebApp 开发经验的前辈们分析,小编推荐下面6款常用的WebApp 开发框架。第一款:Sencha TouchSenchaTouch是世界上第一个支持HTML5和CSS3标准的移动应用框架,你可以使用HTML5来编写音频和视频组件,还可以使用…

发表回复

您的电子邮箱地址不会被公开。

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