【黑马】Feign学习笔记

Http客户端 Feign

一、RestTemplate方式调用存在的问题

在这里插入图片描述

二、Feign介绍

在这里插入图片描述

三、Feign的定义和使用

Feign已经集成了ribbon,可以自动实现负载均衡
在这里插入图片描述

(一)步骤

在这里插入图片描述
在这里插入图片描述
声明完成之后,拿着接口调用方法即可

看到starter:知道属于自动装配

(二)使用方式

在这里插入图片描述
在这里插入图片描述

1.对于有很复杂参数的请求怎么办?

因为是基于注解的参数注入当时,所以多加几个注解即可

(三)总结

在这里插入图片描述

四、自定义Feign的配置

(一)、Feign允许运行自定义配置来覆盖默认配置

在这里插入图片描述
一般我们需要配置的就是日志级别

(二)演示修改日志级别

两种方式:基于配置文件的方式、基于Java代码的方式

1.配置文件方式

在这里插入图片描述

2.Java代码的方式,先声明一个bean

先写个配置类
在这里插入图片描述
①是在启动类上,②是在某一个具体的服务上

(三)日志配置总结

在这里插入图片描述
一般用basic或none,如果是找bug的话,用full

五、Feign的性能优化

Feign是一个声明式客户端,只是把声明变成http请求,最终发http请求时,还是会用到一些别的客户端,默认是用URLConnection

在这里插入图片描述在这里插入图片描述

(一)优化步骤——连接池配置

在这里插入图片描述

(二)具体实现

1.引入依赖
在这里插入图片描述
2.开启httpclient
在这里插入图片描述

(三)总结

在这里插入图片描述

六、Feign的最佳实践

在这里插入图片描述
在这里插入图片描述

这种方式也有一定问题,不推荐在服务和客户端之间共享接口,会造成紧耦合,并且在MVC中不起作用(方法参数是无法继承下来的),需要自己再写一遍。但是这种规范(契约)在企业用的还是比较多的

在这里插入图片描述
会造成引入用不到的方法、

根据对耦合度和契约的需求来选择两种方式

总结

在这里插入图片描述

七、实现Feign最佳实践【抽取FeignClient】

在这里插入图片描述

在这里插入图片描述

userClient

在这里插入图片描述

默认配置

在这里插入图片描述

user实体类

在这里插入图片描述

此时Feign-api就准备好了,以后可以直接使用这一套api,在相应工程下的pom文件中引入feign的统一api即可,实现了客户端代码的抽取

在这里插入图片描述

存在的问题:找不到FeignClient了

编译没报错,说明有这个类,没有注入成功,说明这个类没有创建对象,也就是说在spring的容器中找不到它,报错信息如下:
在这里插入图片描述【FeignClient所在的包是feign的包,现在默认扫描的包是order包,导致扫描不到】

为什么这个接口没有对应的对象?因为之前有对象,是有@FeignClient这个注解,spring扫描到了这个注解,就会给这个接口创建对象。不能将扫描包的范围扩大,解决方式如下:

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值