Feign详解,日志配置+契约设置+超时时间+自定义拦截器

Feign是Netfix开发的声明书、模板化的HTTP客户端,它可以防伪码更加简洁、优雅地调用HTTP API。

SpringCloud OpenFeign对Feign进行了增强,使其支持Spring MVC注解,另外还整合了Ribbon和Nacos,从而使得Feign的使用更加方便。

它可以实现远程调用服务就像调用本地方法一样,就像Dubbo一样。

快速使用

  1. 引入依赖

    openfeign是属于SpringCloud的,我们需要现在父maven项目中添加SpringCloud的版本管理器,然后在子项目中引入依赖

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    
  2. 编写一个Feign接口,并使用@FeignClient注解

    package com.hs.springcloud.feign;
    
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * @Description: 调用stock订单服务 Feign
     * @Author 胡尚
     * @Date: 2022/6/9 19:44
     * @Version 1.0
     * name是指定服务提供方的服务名,path是指定uri的路径,接口中的所有方法都会拼接这一个前缀
     */
    @FeignClient(name = "stock-service", path = "/stock")
    public interface StockFeignService {
         
    
        // 这里就和服务提供方 controller层中rest接口一样的写法就行。
        @RequestMapping("/reduce")
        String reduce();
    }
    

    如果服务提供方使用了RestFul接口的写法,就需要注意在Feign接口中@PathVariable的注解不可用省略括号中的值

    @FeignClient(name = "stock-service", path = "/stock")
    public interface StockFeignService {
         
    
        // 如果服务提供方使用了RestFul的写法,我们就需要在@PathVariable注解中指定value的值
        @RequestMapping("/delete/{id}")
        String delete(@PathVariable("id") Integer id);
    
        //就算服务提供方可以省略,像下面的写法直接写一个@PathVariable,在Feign的接口中我们也必须@PathVariable("id"),不然会报错
        @RequestMapping
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值