springcloud微服务(七)——feign最佳实践(抽取)

springcloud微服务(七)——feign最佳实践(抽取)

​ 上一节提到了feign远程调用,feign客户端是写在服务中。如果服务越来越多,每个服务都要写feign客户端,造成代码冗余。我们可以把feign客户端抽取出来,需要时,直接引用即可。

1.新建feign-api模块(maven)。创建clients包和pojo包,将UserClient和User复制过来。(feign依赖别忘了引)
springcloud微服务(七)——feign最佳实践(抽取)_第1张图片

2.将order-service中的UserClient和User删除,将feign-api模块引入,替换user和userclient对象。

        <dependency>
            <groupId>com.bzwgroupId>
            <artifactId>feign-apiartifactId>
            <version>0.0.1-SNAPSHOTversion>
        dependency>

注意:这里有个地方需要注意,我们启动服务时,spring会扫描启动类所在的包,如果我们的UserClient不在服务启动类扫描包内将会扫描不到feign,从而报错。可以通过以下方法解决(启动类中)。

//方式一:指定FeignClient所在包
@EnableFeignClients(basePackages="com.bzw.feign.clients")
//方式二:指定FeignClient字节码
@EnableFeignClients(clients={UserClient.class})   

你可能感兴趣的:(微服务,spring,cloud,微服务,java)