Fegin

Fegin是一个声明式的HTTP调用框架。为什么是声明式的呢,其实在我们开发过程中一般都是声明一个接口,用@FeginClient标识,接口中的方法与调用方Controller保持一致,如参数,SpringMVC注解这样的。Fegin底层的调用方式是基于HTTP的,默认是使用JDK自带的通信框架,一般可以用HttpClient或OkHttp来进行替换Fegin底层的通信方式,引入pom,在yml文件开启即可。@FeginClient有很多参数,如url是指定服务的调用地址({url:https%3A//网页链接),value是服务在注册中心的名称,primary是指定该实现类的优先级,fegin是会自己生成代理类的,且primary默认是true的方式,这样是表明fegin自己生成的子类是优先级最高的,如果我们要自己写实现类,是会报错误的,所以primary是要做调整的。configuration是用来指定配置类的,fegin的配置类可以分为全局配置和局部配置,具备配置就是在@FeignClient参数中指定configuartion即可。Path属性是指定统一前缀的意思。Fegin可以轻而易举的集成ribbon和hystrix,ribbon是一个客户端的负载均衡工具,ribbon内部又集成了eureka注册中心,可以拿到注册中心服务的一些信息,从而进行一些负载算法对服务的调用。Fegin也支持请求压缩,请求数据过大时可以考虑对数据进行压缩,提高数据传输效率。Fegin也支持继承,开发方式controller和fegin接口都实现了同一个接口类,可以减少很多模板代码。fegin默认是不支持文件传输的,如果想要支持文件出传输,需要引入一些其他的依赖,fegin-from fegin-from-spring,并且为该fegin替换SpringFromEncoder编码器,才可以进行feign的文件传输。Fegin的底层其实就是基于动态代理+RestTemplate对我们声明的接口及方法,url+参数拼接,在返回数据的时候可以根据我们声明的返回类型去做转换,如果你的returnType指定为String,就会给你转成String,如果你指定其他实体,fegin也会帮你转换,但前提是合理的情况下,否则就会报错,当然你也可以直接用Fegin提供的Response来接收,然后自己做处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值