将feignClient抽取为独立模块,并把接口有关的entity,默认feign的配置都放到这个模块中,提供给所有的消费者。
1.首先创建一个module,命名为feign-client,然后引入feigh的starter依赖。
2.将order-service中编写的UserCllient、User都移动到feign-client中。
3.在order-service中引入feign-client的依赖。
Description:
Field userClient in com.xkj.org.service.impl.OrderServiceImpl required a bean of type 'com.xkj.feign.clients.UserClient' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
遇到上述错误的原因是:
feign-client的module中的UserClient类的bean实例找不到。因为UserClient在feign-client module下的 com.xkj.feign包下。而消费者order-servcie的 module下的启动类上的@EnableFeignClients注解没有指定包默认是com.xkj.org,所以找不到。
解决办法两种:
1.指定包
@EnableFeignClients("com.xkj.feign")
2.指定类(推荐)
@EnableFeignClients(clients = UserClient.class)
feign-client model是一个没有配置文件,没有启动类的model。只有FeignClient类和实体类,以及pom.xml文件中跟feign相关的坐标。它不是一个微服务,不需要启动,只是供其他微服务依赖使用。