Feign的最佳实践
方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。
方式二(抽取):将FeignClient抽取为独立模块,并把接口有关的POJO、默认的Feign配置都放到这个模块中,提供过所有的消费者使用
这是抽取出来的Feign-api模块
在需要远程调用的pom中导入Feign-api(自己写的)
<!--引入feign-api(自己写的)-->
<dependency>
<groupId>cn.itcast.demo</groupId>
<artifactId>feign-api</artifactId>
<version>1.0</version>
</dependency>
但是现在由于不在一个模块不在一个包,定义的FeignClient不在SpringBootApplication的扫描范围,这时FeignClient将无法使用。
两种解决办法:
方式一:指定FeignClient所在包
@EnableFeignClients(basePackages = "cn.xxx.xxx.xxx")
方式二:指定FeignClient字节码(推荐)
@EnableFeignClients(clients = UserClient.class)