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系列四 feign远程调用服务

SpringCloud之声明式服务调用 Feign

SpringCloud Feign使用

SpringCloud-服务的消费者(Feign)

SpringCloud 之Feign服务消费者

SpringCloud http客户端Feign -- 自定义Feign的配置(一般情况下需要配置的是日志级别)Feign的配置优化