加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Feign 系列(02)Why Feign

发布时间:2020-12-15 07:41:19 所属栏目:Java 来源:网络整理
导读:Feign 系列(02)Why Feign 1. 什么是 Feign Feign 的英文表意为“假装,伪装,变形”, 是一个 Http 请求调用的轻量级框架,可以以 Java 接口注解的方式调用 Http 请求,而不用像 Java 中通过封装 HTTP 请求报文的方式直接调用。 Feign 通过处理注解,将请

Feign 系列(02)Why Feign

1. 什么是 Feign

Feign 的英文表意为“假装,伪装,变形”, 是一个 Http 请求调用的轻量级框架,可以以 Java 接口注解的方式调用 Http 请求,而不用像 Java 中通过封装 HTTP 请求报文的方式直接调用。

Feign 通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。

Feign 被广泛应用在 Spring Cloud 的解决方案中,是学习基于 Spring Cloud 微服务架构不可或缺的重要组件。

Feign 开源项目地址:https://github.com/OpenFeign/feign

2. Feign解决了什么问题

2.1 封装 HTTP 调用流程,面向接口编程

在服务调用的场景中,我们经常调用基于 Http 协议的服务,而我们经常使用到的框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、Netty 等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供 Http 调用服务。具体流程如下:

sequenceDiagram 客户端 -> Client框架: 构建请求行 客户端 -> Client框架: 构建请求头 客户端 -> Client框架: 构建请求体 Client框架 -> 服务端: 发送Http请求 Note right of 服务端: 服务端处理请求<br/> 服务端 --> Client框架: 返回报文 Client框架 --> 客户端: 提取报文信息,解析成JavaBean Note left of 客户端: 客户端处理业务

2.2 兼容各种 REST 声明式规范

JAX-RS、Feign、Spring Cloud Open Feign、Spring Web MVC注解驱动特性。

REST框架 使用场景 请求映射注解 请求参数
JAX-RS 客户端声明、
服务端声明
@Path @*Param
Feign 客户端声明 @RequestLine @Param
Spring Cloud Open Feign 客户端声明 @ReqeustMapping @RequestParam
Spring Web MVC 服务端声明 @ReqeustMapping @RequestParam

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读