Feign 的工作流程:
- 启动时 ReflectiveFeign 通过 jdk 动态代理方式生成 FeignClient 的代理。
- 调用 invoke() 时,生成 RequestTemplate 封装了 uri ,请求参数等信息。
- 在 executeAndDecode() 中用 RequestTemplate 构造出 Request 对象。
- 调用 LoadBalancerFeignClient.execute() 去发送 http 请求。
- 获得 response 之后,根据 code 来进行 decode 将报文组装成对象。