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)
上一篇 2022年10月4日 下午12:16
下一篇 2022年10月4日 下午12:16


相关推荐

  • 卷积与反卷积关系超详细说明及推导(反卷积又称转置卷积、分数步长卷积)

    卷积与反卷积关系超详细说明及推导(反卷积又称转置卷积、分数步长卷积)  以CNN为代表的卷积神经网络在图像的相关领域得到了较为长足的发展。在CNN中卷积实际分类两大类,一种是卷积,另一种是转置卷积(transposedconvolutional),或者称为分数步长卷积(fractionallystridedconvolutionallayers),亦或者是反卷积(deconvolution)。  虽然在一些文章中将反卷积与转置卷积认为是等价的…

    2022年6月21日
    31
  • c字符串转成数字

    c字符串转成数字c 库包含了字符和数字的转换 头文件为 stdlib h nbsp atof nbsp nbsp nbsp nbsp 将字符串转换为双精度浮点型值 nbsp atoi nbsp nbsp nbsp nbsp 将字符串转换为整型值 nbsp atol nbsp nbsp nbsp nbsp 将字符串转换为长整型值 nbsp strtod nbsp nbsp 将字符串转换为双精度浮点型值 并报告不能被转换的所有剩余数字 nbsp strtol nbsp nbsp 将字符串转换为长整值 并报告不能被转换的所有剩余数字 nbsp strtoul

    2026年3月17日
    2
  • vwmare 15“无权输入许可证密钥…”与出现新问题hadoop集群无法启动

    vwmare 15“无权输入许可证密钥…”与出现新问题hadoop集群无法启动1 您无权输入许可证密钥 请使用系统管理员帐户重试 问题与解决方法 2 导入 Hadoop 文件后 hadoop 集群无法成功启动问题与解决方法

    2026年2月3日
    12
  • hadoop 面试题收集及个人答案整理

    hadoop 面试题收集及个人答案整理1、简要描述如何安装配置一个apache开源版hadoop,描述即可,列出步骤更好      –解压hadoop包,到指定安装文件夹      –配置linux基本网络环境、jdk环境、防火墙环境      –修改主机名,方便后面UI的访问      –修改hadoop/etc/hadoop/conf下的配置文件,根据部署的模式和需要进行配置      –格式化nam…

    2022年6月29日
    20
  • python读取和保存json文件

    python读取和保存json文件json 文件是一种常见的数据存储文件 比 txt 看着高级点 比 xml 看着人性化一点 同时 json 作为一种通用协议的文件格式 可以被各种语言方便地读取 所以 json 非常适合用来存储结构化的数据 json 的具体介绍和使用规范 https www json org json en html 本文将关于 python 读取 json 做一个小小的记录和总结 1 读取 json 一般情况下的 j

    2026年3月16日
    2
  • Pycharm项目生成可执行exe文件(Windows版)

    Pycharm项目生成可执行exe文件(Windows版)Python 生成 Windows 可执行 exe 文件 Pycharm 生成 exe 程序 一个项目开发完毕后总有一种想法 就是生成可执行文件 总不能一直用 pythonxxx 执行吧 以下操作同时适用于 windows 和 Linux 下的 Pycharm 我在 Ubuntu 下试验过 生成的是在 Ubuntu 下的可执行文件 1 打开 Pycharm 2 打开 Terminal 快捷键 Alt F12 3 安装 pyinstaller 工具输入 pipinstallpy 生成本项目可执行文件 Termi

    2026年3月27日
    2

发表回复

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

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