springcloud微服务(7)——feign最佳实践(抽取)
上一节提到了feign远程调用,feign客户端写在服务中。如果服务越来越多,每个服务都要写feign导致代码冗余的客户端。我们可以使用它feign提取客户端,必要时直接引用。
1.新建feign-api模块(maven)。创建clients包和pojo包,将UserClient和User复制过来。(feign依赖别忘了引)
2.将order-service中的UserClient和User删除,将feign-api引入、替换模块user和userclient对象。
<dependency> <groupId>com.bzw</groupId> <artifactId>feign-api</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
注:这里有一个地方需要注意,当我们开始服务时,spring如果我们的UserClient如果没有服务启动扫描包,将无法扫描feign,从而报错。可通过以下方法解决(启动类)。
/方法一:指定FeignClient所在包 @EnableFeignClients(basePackages="com.bzw.feign.clients") /方式二:指定FeignClient字节码 @EnableFeignClients(clients={UserClient.class})