传统Feign面临的问题:
1、每个子项目都要写所要调用服务的pojo
2、每个子项目都要写所要调用服务的feign client客户端
优化思路:由提供服务服务的子项目统一归集代码,统一对外提供接口服务、Feign子项目统一管理服务远程调用、
将FeignClient抽取为独立的模块,并且把接口有关的POJO、默认Feign配置、Feign-client服务都放到这个模块中,提供给所有消费者使用。换言之,就是新建一个Feign子项目,将其他子项目的中feign相关代码(包括pojo、feign配置和feign-client)全部抽取剥离并集中于此,需要调用服务的子项目只需要依赖(引入)这个Feign子项目即可。
一、在父项目上点击鼠标右键选择new→Module:
过程同本专栏前述文章,略过不表,子项目的文件结构如下:
二、在pom.xml中引入依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
三、创建feign配置类
package cn.it32.feign.config;
import feign.Logger;
import org.springframework.context.annotation.Bean;
public class DefaultFeignConfigurati