【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】
实现最佳实践方式二

的步骤如下:
首先创建一个module,命名为feign-api,然后引入feign的starter依赖
将order-service中编写的UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中
在order-service中引入feign-api的依赖
修改order-service中的所有与上述三个组件有关的import部分,改成导入feign-api中的包
重启测试
【1】新建module

直接创建

OK, 引入feign 的依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-openfeignartifactId>
dependency>
dependencies>
记得刷一下

接下来就是 CV 大法

删掉order 中的相关文件

修改order-service 的pom
<dependency>
<groupId>cn.itcast.demogroupId>
<artifactId>feign-apiartifactId>
<version>1.0version>
dependency>

OK


其他文件中的报错都通通导一下

OK, 直接重启order 服务

OK, 和老师一样,报了找不到 UserClient 的错误

为什么这个接口没有对应的对象?【是因为包已经变了, 扫不到了】
直接改扫描范围,就因为想用下接口,显然是不合适的
当定义的FeignClient不在SpringBootApplication的扫描包范围时,这些FeignClient无法使用。有两种方式解决:

一个可以实现批量,一个精准定位

OK, 再次重启

OK, 启动成功,测试

没毛病
不同包的FeignClient的导入有两种方式:
①在@EnableFeignClients注解中添加basePackages,指定FeignClient所在的包
②在@EnableFeignClients注解中添加clients,指定具体FeignClient的字节码