SpringCloud整合Feign基本使用及源码分析-02

又是美好的一天呀~
个人博客地址: huanghong.top

服务调用源码分析

FeignClient实例为动态代理创建的对象,当进行服务调用FeignClient的接口方法就会被FeignInvocationHandler的invoke方法拦截。

//feign.ReflectiveFeign.FeignInvocationHandler#invoke
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
   
  //equals、hashCode、toString方法调用的处理
  if ("equals".equals(method.getName())) {
   
    try {
   
      Object otherHandler =
          args.length > 0 && args[0] != null ? Proxy.getInvocationHandler(args[0]) : null;
      return equals(otherHandler);
    } catch (IllegalArgumentException e) {
   
      return false;
    }
  } else if ("hashCode".equals(method.getName())) {
   
    return hashCode();
  } else if ("toString".equals(method.getName())) {
   
    return toString();
  }
  //根据调用方法名获取对应MethodHandler来执行请求
  return dispatch.get(method).invoke(args);
}

invoke

//feign.SynchronousMethodHandler#invoke
public Object invoke(Object[] argv) throws Throwable {
   
  //根据方法入参及接口方法对应处理器属性构建一个Http请求模版
  RequestTemplate template = buildTemplateFromArgs.create(argv);
  //获取请求相关超时参数
  Options options =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

喜欢正常冰的冰美式

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值