当前位置:首页 > 后端开发 > Feign简介-1-入门介绍

Feign简介-1-入门介绍

6个月前 (05-26)52

1. 什么是 Feign

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

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

2. Feign 解决了什么问题

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

Feign 本身很简单,但做了大量的适配工作,这也是这个框架存在的意义。

下面是http请求的服务流程

Feign简介-1-入门介绍 _ Java侠

根据上图的分析可知:要实现 Feign 客户端,主要是将 Method 方法的参数解析成 Http 请求的请求行、请求行、请求体,然后使用 HttpClient 发送请求。

3.Feign 声明式注解

Feign 通过 Contract 接口将方法上标注的注解解析成 MethodMetadata,最终将参数解析成 Http 请求的请求行、请求行、请求体,然后使用 HttpClient 发送请求。

下面是一些Feign的注解
Annotation Interface Target Usage
@RequestLine Method 定义HttpMethod 和 UriTemplate. UriTemplate 中使用{} 包裹的表达式,可以通过在方法参数上使用@Param 自动注入
@Param Parameter 定义模板变量,模板变量的值可以使用名称的方式使用模板注入解析
@Headers Method, Type 定义头部模板变量,使用@Param 注解提供参数值的注入。如果该注解添加在接口类上,则所有的请求都会携带对应的Header信息;如果在方法上,则只会添加到对应的方法请求上
@QueryMap Parameter 定义一个Map或 POJO,参数值将会被转换成URL上的 query 字符串上
@HeaderMap Parameter Map ->Http Headers
@Body Method Defines a Template, similar to a UriTemplate and HeaderTemplate, that uses @Param annotated values to resolve the corresponding Expressions.

feign的执行过程

Feign简介-1-入门介绍 _ Java侠

参考:https://blog.csdn.net/zhangyingchengqi/article/details/109381983

作者:唐僧洗澡不秃头
来源链接:https://blog.csdn.net/weixin_45942124/article/details/109550881

标签: Feign

“Feign简介-1-入门介绍” 的相关文章

feign的使用入门篇

feign的使用入门篇

Feign简介 Feign是一个声明式的Web服务客户端,使用Feign可使得Web服务客户端的写入更加方便。 它具有可插拔注释支持,包括Feign注解和JA...

SpringCloud与微服务Ⅶ --- Feign负载均衡

官方文档:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign 一.Feign是...

Feign的详解与使用

Feign详解与使用 文章目录 Feign详解与使用 一、什么是Feig...

Feign原理 (图解)

Feign原理 (图解)

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 20...

Feign和Hystrix异常熔断的理解

使用Feign client进行restful服务间的调用,除了要注意超时时间、retry的设置外,还有一个关于自定义异常的部分,需要注意一下,不然...

Ribbon与Feign的区别

Ribbon与Feign的区别

Ribbon添加maven依赖 spring-starter-ribbon 使用@RibbonClient(value="服务名称") 使用RestTemplate调用远程服...

Feign配置feign.client.default-to-properties原理详解

默认feign.client.default-to-properties配置为true,其作用是初始化对象获取属性的优先级顺序;...

feign的性能优化、Feign的使用-最佳优化两种方案

feign的性能优化、Feign的使用-最佳优化两种方案

性能优化基础: feign底层客户端实现默认使用的是URLConnection,这是jdk自带的发送http请求的包,不支持连接池;...

Feign-日志设置

1.编写Feign配置类 @Configuration public class FeignConfig { @Bean public Logger....

Feign 路径问题

目前我们的后端服务使用的是Spring Cloud,各方相互调用使用的是对方提供的Client包的形式。 今天在引入一个三方包后项目启动报 java...