SpringCloud http客户端Feign -- Feign的较好实践
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud http客户端Feign -- Feign的较好实践相关的知识,希望对你有一定的参考价值。
1. Feign的最佳实践
所谓最佳实践就是企业在各种踩坑后,总结出来的相对比较好的使用方式。
1.1 方式一:继承
我们可以来看一下现在的代码:发现消费者和提供者的代码是一样的。
消费者
提供者
实现思路:现在一个模块里面建立一个公共的父接口,然后在另外一个项目通过pom文件引入刚刚那个模块。
1.2 方式二:抽取
1.2.1 介绍
1.2.2 具体实现
实现步骤:
首先创建一个module,命名为feign-api
然后引入feign的starter依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
将order-service中编写的UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中
在order-service中引入feign-api的依赖
<!--引入feign的统一api-->
<dependency>
<groupId>cn.itcast.demo</groupId>
<artifactId>feign-api</artifactId>
<version>1.0</version>
</dependency>
修改order-service中的所有与上述三个组件有关的import部分,改成导入feign-api中的包
重启测试:
发现启动不了,原因是在项目当中没有UserClient的bean:
报错原因分析:
为什么以前可以扫描到这个对象,因为以前可以扫描到这个注解:
解决方式:
重启测试,可以成功的拿到数据:
小结:
以上是关于SpringCloud http客户端Feign -- Feign的较好实践的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud http客户端Feign -- 自定义Feign的配置(一般情况下需要配置的是日志级别)Feign的配置优化