Spring Cloud 系列之OpenFeign:(4)集成OpenFeign

目录

传送门

服务间调用

集成OpenFeign

说明文档

添加pom依赖

启用OpenFeign

声明OpenFeign接口

改造远程调用

定义OpenFeign接口

测试OpenFeign调用


传送门

Spring Cloud Alibaba系列之nacos:(1)安装

Spring Cloud Alibaba系列之nacos:(2)单机模式支持mysql

Spring Cloud Alibaba系列之nacos:(3)服务注册发现

服务间调用

集成OpenFeign

说明文档

Spring Cloud OpenFeign

可以按照上面的集成指南亦步亦趋,跟着集成就行了

添加pom依赖

 官方文档给出了对应的pom坐标

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

启用OpenFeign

在SpringBoot的启动类上面,添加注解@EnableFeignClients

声明OpenFeign接口

改造远程调用

在之前集成nacos的时候,为了测试nacos的注册发现,在auth服务上面声明了一个Controller,定义了一个方法

@RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
    public String echo(@PathVariable String str)
    {
        return restTemplate.getForObject("http://cipher-service/echo/" + str, String.class);
    }

通过RestTemplate调用了cipher服务的接口,现在把这个接口改造成OpenFeign调用。虽然RestTemplate封装了Http的远程调用,但是使用它还是有一些模板化的代码,比如restTemplate.getForObject(url,参数,响应)这种。而OpenFeign更进一步,通过代码将这种类似的模板代码也消除了,使开发人员用起来就像面对对象的本地调用一样方便

定义OpenFeign接口

针对要高用的接口,首先创建一个接口,比如命令为AuthFeignClient。然后在接口上面打上注解@FeignClient,其中FeignClient表明这是一个OpenFeign接口,里面至少要定义属性"name",对应的所要调用的服务的名称,现在是auth调用cipher,那么name就是cipher服务的名称"cipher-service"


public class FeignConstant {

    public static final String CIPHER_SERVICE = "cipher-service";
}
@FeignClient(name = FeignConstant.CIPHER_SERVICE)
public interface AuthFeignClient
{
    
}

这一步完成了,那么,对于远程方法的调用,就跟传统的SpringMvc没有区别了。现在定义一下原来cipher的接口调用

@FeignClient(name = FeignConstant.CIPHER_SERVICE)
public interface AuthFeignClient
{
    @GetMapping(value = "/echo/{str}")
    String echo(@PathVariable("str") String str);
}

测试OpenFeign调用

OpenFeign接口调用定义完成之后,现在来测试调用一下

@RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
    public String echo(@PathVariable String str)
    {
// 原来的restTemplate调用
        //        return restTemplate.getForObject("http://cipher-service/echo/" + str, String.class);
// OpenFeign调用
        return feignClient.echo(str);
    }

浏览器请求一下,http://localhost:8080/echo/ssss,返回Hello Nacos Discovery ssss,表明调用成功

在下一节,会介绍一下OpenFeign的其它配置及一些通用实践

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值