Spring Cloud学习笔记——Feign的简单实现和基本原理

Feign是一个Java接口注解的HTTP客户端,它通过处理注解将HTTP请求模板化,避免手动配置请求细节。使用Feign,开发者可以更专注于业务接口,而不是底层HTTP调用。在Spring的OpenFeign中,它集成了Ribbon做负载均衡,方便在微服务架构中使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Feign 是什么

Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,封装了http调用流程。

2、为什么选择 Feign

如果不使用rpc框架,那么调用服务需要走http的话,无论是使用 JDK 自带的 URLConnection,还是使用Http工具包 Apache 的httpclient, 亦或是 OkHttp, 都需要自行配置请求head、body,然后才能发起请求。获得响应体后,还需解析等操作,十分繁琐。

而Feign 只需要定义一个接口,并且通过注解的形式定义好请求模板,就可以项使用本地接口一样,使用Http请求。

3.Feign原理简述

启动时,程序会进行包扫描,扫描所有包下所有@FeignClient注解的类,并将这些类注入到spring的IOC容器中。当定义的Feign中的接口被调用时,通过JDK的动态代理来生成RequestTemplate。
RequestTemplate中包含请求的所有信息,如请求参数,请求URL等。
RequestTemplate声场Request,然后将Request交给client处理,这个client默认是JDK的HTTPUrlConnection,也可以是OKhttp、Apache的HTTPClient等。
最后client封装成LoadBaLanceClient,结合ribbon负载均衡地发起调用。

总结

Feign 是一个很好的框架工具,把繁琐的 Http 请求,抽象为以接口加注解的方式实现,也使开发者很好的面向接口编程。在目前微服务盛行的当下,Spring 也对 Feign 进行了封装,即OpenFeign.

https://baijiahao.baidu.com/s?id=1663378013405325309&wfr=spider&for=pc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值