SpringCloud Feign中优雅的在服务提供方实现fallback方法

起因:

  1. 我个人认为关于在服务消费方实现fallback的方法是不符合现实逻辑的,也不够优雅(拒绝反驳,因为你看到了这篇文章可能就是想这么干,哈哈),因为只有服务提供方才明白服务降级后的处理结果应该怎么样处理,而不是消费方关心的事。
  2. 因为正常的Feign的fallback配置是需要在消费方进行服务降级处理的,所以有了本文章。

正题:

一、定义好类

为了实现这样的目标,同时避免Feign的坑,我们先定义四个类:
例子:
服务者提供:UserApi 和 UserApiFallback
服务消费者:UserClient 和 UserFallback
先说提供方的:
UserApi :
在这里插入图片描述
UserApiFallback:在这里进行服务降级的实现处理
在这里插入图片描述
再来消费方的:
UserClient:
在这里插入图片描述
UserFallback:
在这里插入图片描述

二、说明
  1. UserApiFallback接口类继承UserApi接口类并重写其方法进行实现,是为了保持再消费方调用的时候接口方法名的一致性(不然Feign会报错,后面说到)
  2. UserClient是FeignClient的接口类,同样继承UserApi保持接口方法名的一致性
  3. UserFallback中 implements UserClient,UserApiFallback,并且:
    加上@Component 和@RequestMapping(“userFallback”)注解!!!这里是重点,不然Feign会报错,RequestMapping里面的路径只要不和UserApi里面定义的一样就行,随便起
  4. 之所以UserFallback还implements 了UserApiFallback 是因为用这个类来实现对FeignClient的UserClient方法的重写,实现在消费方不需要在去手动实现方法了,这也是我的目的,也是本文的正题。
  5. 其实也就是对Feign的fallback原理的理解的一种实现方法而已,fallback的调用本来是要对FeignClient的UserClient方法的重写达到目的的,并且要重写RequestMapping路径才能正常;

本文到此就结束了,本次测试的项目是正常运行的,关于如何配置Feign并使其正常运行请自行搜索相关内容,这里就不多描述了,如果本文的描述表达方面有缺陷还请多多谅解。谢谢!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值