Spring Cloud Feign的工作机制是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2608个文字,预计阅读时间需要11分钟。
Feign 是一个 HTTP 请求调用的轻量级框架,通过 Java 接口注解的方式调用 HTTP 请求,无需直接封装 HTTP 请求报文,简化了 HTTP 请求的开发过程。
什么是Feign?
Feign 的英文表意为“假装,伪装,变形”, 是一个github.com/OpenFeign/feign
Feign解决了什么问题?
封装了Http调用流程,更适合面向接口化的编程习惯 在服务调用的场景中,我们经常调用基于Http协议的服务,而我们经常使用到的框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、Netty等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供Http调用服务。具体流程如下:
Feign是如何设计的?
工作原理
-
主程序入口添加了@EnableFeignClients注解开启对FeignClient扫描加载处理。根据Feign Client的开发规范,定义接口并加@FeignClientd注解。
-
当程序启动时,会进行包扫描,扫描所有@FeignClients的注解的类,并且将这些信息注入Spring IOC容器中,当定义的的Feign接口中的方法被调用时,通过JDK动态代理方式,来生成具体的RequestTemplate。当生成代理时,Feign会为每个接口方法创建一个RequestTemplate对象,该对象封装可HTTP请求需要的全部信息,如请求参数名,请求方法等信息都是在这个过程中确定的。
本文共计2608个文字,预计阅读时间需要11分钟。
Feign 是一个 HTTP 请求调用的轻量级框架,通过 Java 接口注解的方式调用 HTTP 请求,无需直接封装 HTTP 请求报文,简化了 HTTP 请求的开发过程。
什么是Feign?
Feign 的英文表意为“假装,伪装,变形”, 是一个github.com/OpenFeign/feign
Feign解决了什么问题?
封装了Http调用流程,更适合面向接口化的编程习惯 在服务调用的场景中,我们经常调用基于Http协议的服务,而我们经常使用到的框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、Netty等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供Http调用服务。具体流程如下:
Feign是如何设计的?
工作原理
-
主程序入口添加了@EnableFeignClients注解开启对FeignClient扫描加载处理。根据Feign Client的开发规范,定义接口并加@FeignClientd注解。
-
当程序启动时,会进行包扫描,扫描所有@FeignClients的注解的类,并且将这些信息注入Spring IOC容器中,当定义的的Feign接口中的方法被调用时,通过JDK动态代理方式,来生成具体的RequestTemplate。当生成代理时,Feign会为每个接口方法创建一个RequestTemplate对象,该对象封装可HTTP请求需要的全部信息,如请求参数名,请求方法等信息都是在这个过程中确定的。

