SpringCloud之http客户端Feign

举报
兰舟千帆 发表于 2022/07/21 18:53:06 2022/07/21
【摘要】 @TOC注:这里的案例续SpringCloud 分布式微服务架构先回忆一下RestTemplate,我们之前是怎么是用的。我们初步用它是做远程的微服务的调用的。主要的代码但是这样的存在的问题就是代码的可读性并不是很强。而且这样如果服务比较多的话,每次都需要将服务名一个一个的配置到url里面,这样的url也是不好维护的。最最最重要的一点啊它不够优雅,我们寻求最优雅的方式。那么到底如何做到优雅的...

@TOC

注:这里的案例续SpringCloud 分布式微服务架构

先回忆一下RestTemplate,我们之前是怎么是用的。
我们初步用它是做远程的微服务的调用的。
主要的代码
在这里插入图片描述
但是这样的存在的问题就是代码的可读性并不是很
强。而且这样如果服务比较多的话,每次都需要将服务名一个一个的配置到url里面,这样的url也是不好维护的。

最最最重要的一点啊它不够优雅,我们寻求最优雅的方式。那么到底如何做到优雅的呢?一步一步来。

按照常规的方式首先必然是需要导入依赖,我们需要在客户端微服务导入这个依赖。然后整个feign的操作都在客户端的这个模块中操作。

但是其实我们可以把FeifnClient抽取为独立的模块,将功能模块独立化的好处就是我们的解耦化更高,当然这个必须要考虑到整体项目环境的合理性。

抽取的前提是你要明白它在整体的微服务里面扮演了什么样的角色。我们用这个代替了RestTemplate,那么作用实际上是一个对userservice的访问接口,也就是客户端对服务端的访问接口。

单独抽取出来的作用降低了耦合另外也方便我们将来其他的客户端去使用到这个接口。

整体的使用思路划分

在这里插入图片描述

首先我们创建一个模块。

在这里插入图片描述

首先说明该模块需要的依赖

在这里插入图片描述
feign-api模块这里我们只需要这样一个依赖。

然后我们需要去客户端引入相关的依赖。
在这里插入图片描述
为什么这里还需要单独引入feign-api这个模块依赖,因为我们需要使用到它的一些东西。毕竟是两个模块,我们将一些东西抽离出去,这里没有引入的话,会出现问题。

我们看feign-api这个模块做了哪些事情。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这个日志配置可以根据自己的需要来配置,也可以在配置文件中配置。

下面我们来看客户端。首先我们在service中调用到这个·接口的东西,因为我们会在这里有访问服务端接口。这里注入了bean。
在这里插入图片描述
当然我们还需要在启动类这里配置一下。

在这里插入图片描述

还有一点,配置文件的配置

在这里插入图片描述

具体就是这么多,框架就是这样,简化的同时也带来了配置的懵逼。

测试的人话是没什么问题的。项目启动的话,一定要加载完毕后测试。

在这里插入图片描述

本来想和springcloud那篇并在一起的,但是感觉文章有点臃肿。就分散开吧。依赖配置的话没什么技巧,记住用哪些就行了,实在不行自己做过一次配置就保留好,用的时候cv大法,或者对照着,就不要专门因为依赖导入配置相关费心。请添加图片描述

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。