Feign工作原理

乌拉 / 36 /

ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。
https://ckai.xyz

主程序入口添加了@EnableFeignClients 注解开启对 FeignClient 扫描加载处理。
根据Feign Client 的开发规范,定义接口并加@FeignClient 注解。
当程序启动时,会进行包扫描,扫描所有@FeignClient 的注解的类,并且讲这些信息注入 Spring IOC 容器中,当定义的的 Feign 接口中的方法被调用时,通过 JDK 的代理方式,来生成具体的
RequestTemplate.
当生成代理时,Feign 会为每个接口方法创建一个 RequestTemplate 对象,该对象封装
HTTP 请求需要的全部信息,如请求参数名,请求方法等信息都是在这个过程中确定的。
然后 RequestTemplate 生成 Request,然后把 Request 交给 Client 去处理,这里指的时
Client 可以时 JDK 原生的 URLConnection,Apache 的 HttpClient,也可以时 OKhttp,最后
Client 被封装到 LoadBalanceClient 类,这个类结合 Ribbon 负载均衡发器服务之间的调
用。
image.png


作者
乌拉
许可协议
CC BY 4.0
发布于
2023-09-16
修改于
2024-04-05
Bonnie image
尚未登录