实战使用Feign远程调用

Feign是一个用于跨服务进行远程调用的一个工具。

接下来,我们梳理一下如何使用。

首先,它的作用是在消费端使用提供端提供的服务接口,但因为在不同的服务,所以他们并不能直接进行调用,所以我们需要创建一个额外的接口,提供中间的连接。

所以我们现在可以这样设置

我们有两个服务,A和B,我们的A服务需要调用B服务中的方法。

第一步我们先创建一个Service-client新的模块来专门进行创建feign接口的创建。

创建完之后,在这个模块中的pom中,加入pom的maven坐标。

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

加入完之后,我们创建对应服务的相应服务(比如在图中我们需要调用的是service-cmn的服务),我们就创建service_cmn_client的服务。

再进行创建相应的Java实现类接口。

创建完之后我们要开始在这个接口中注入我们需要进行调用的接口。 

@Repository
@FeignClient(value = "service-cmn")
public interface DictFeignClient  {

}

在这里我们需要加入@FeignClient的接口,并在它的后面的括号中加入我们需要调用的服务的名称(指的是在yml文件中的引导类的名称),而这里的加入的Repository或者@Service的注解是为可以让他注入一个Bean可以被引导类进行使用。

接下来我们需要在里面写入我们的方法,直接从需要调用的服务的Controller里面直接CV其中的方法。

这里唯一要注意的是要在@PathVariable的后面用括号把request的值放进去。 

到此为止,调用的接口client类已经完成了。 

接下来,我们就需要在消费端的服务中,进行调用了。

首先,我们需要在消费端的服务中加入feign的maven配置。

也要把远程调用类引入我们的pom文件。

        <dependency>
            <groupId>com.heima</groupId>
            <artifactId>service-cmn-client</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

我们还需要在我们的消费端服务的引导类中加入

@EnableFeignClients(basePackages = "com.atguigu")

这里的注解中需要加入basePackages = "com.atguigu",这个是用于避免spring boot框架会找不到所要调用的Client的接口,进行扫描。

接下来就可以在实现类中进行注入就可以使用了。

大家遇到什么问题,可以留言。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值