Feign 调用原理

之前的文章《一次线上超时问题,看Ribbon 超时机制》已经提到了openFeign 调用,今天就来扒一扒,具体是如何调用的,要弄清楚这个问题,首先得知道 client 对象如何创建,然后才是调用,不着急,我们慢慢来,首先看创建。

一、FeignClient 创建

注入了 feignClient 的 bean 在创建的时候,会 resolveDependency 然后 创建 feignClient, 通过 debug:

org.springframework.cloud.openfeign.FeignClientFactoryBean#getObject :

继续跟踪下去,最后发现使用了 JDK 动态代理:

二、调用

既然知道是 JDK 动态代理,那也就知道调用方式了,通过 methodHandler 调用,只是这里 feign z做了封装

  再往下就是通过 client 去发送 http 请求完成调用了:


如果觉得还不错的话,关注、分享、在看, 原创不易,且看且珍惜~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【非典型Coder】

赏个鸡腿吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值