04.1OpenFeign的原理

vvEcho 2025-03-02 14:16:08
Categories: Tags:

Openfeign是SpringCloud对Feign也进行了增强,直接支持Hystrix和Ribbon,也支持SpringMVC的注解。这样使得Feign的使用非常方便。

1、在使用Openfeign时首先会在springboot的启动类上添加@EnableFeignClients注解,该注解会导入FeignClientsRegistrar类,会去扫描所有的带有@FeignClient

2、解析到@FeignClient修饰类后,Feign框架通过扩展SpringBeanDeifinition的注册逻辑,最终注册一个FeignClientFacotoryBean进入Spring容器

3、Spring容器在初始化其他用到@FeignClient接口的类时,获得的是FeignClientFacotryBean产生的一个代理对象Proxy

4、基于java原生的动态代理机制,针对Proxy的调用,都会被统一转发给Feign框架所定义的一个InvocationHandler,由该Handler完成后续的HTTP转换,发送,接收,翻译HTTP响应的工作