Feign 接口的多态_环球视讯

2023-04-10 06:32:19 来源:腾讯云 分享到:


(资料图片)

接口多态

在Feign中,接口多态可以让我们通过一个接口的引用来调用不同的实现类,从而提高代码的灵活性和可扩展性。

例如,我们有一个支付服务接口,它有多种支付方式,我们可以使用接口多态来实现这些支付方式的调用。

定义接口

首先,我们需要定义一个支付服务接口,其中包含了多种支付方式的方法。

public interface PaymentService {    @PostMapping("/pay")    PaymentResponse pay(@RequestBody PaymentRequest request);}public class PaymentRequest {    private String paymentType;    private Double amount;    //...}public class PaymentResponse {    private String status;    private String message;    //...}

在上面的示例中,我们定义了一个名为PaymentService的接口,其中包含了支付方法pay,并定义了请求参数PaymentRequest和响应参数PaymentResponse。

实现接口

接下来,我们可以实现支付服务接口,针对不同的支付方式提供不同的实现。

@FeignClient(name = "alipay-service")public interface AlipayService extends PaymentService {}@FeignClient(name = "wechatpay-service")public interface WechatpayService extends PaymentService {}

在上面的示例中,我们分别定义了支付宝支付服务和微信支付服务,它们都实现了PaymentService接口,从而可以使用接口多态来调用不同的支付方式。

使用接口多态

最后,我们可以使用接口多态来调用不同的支付方式,例如:

public class PaymentController {    private PaymentService paymentService;    public PaymentController(PaymentService paymentService) {        this.paymentService = paymentService;    }    @PostMapping("/pay")    public PaymentResponse pay(@RequestBody PaymentRequest request) {        return paymentService.pay(request);    }}@RestControllerpublic class AlipayController {    private PaymentController paymentController;    public AlipayController(AlipayService alipayService) {        paymentController = new PaymentController(alipayService);    }    @PostMapping("/alipay/pay")    public PaymentResponse pay(@RequestBody PaymentRequest request) {        return paymentController.pay(request);    }}@RestControllerpublic class WechatpayController {    private PaymentController paymentController;    public WechatpayController(WechatpayService wechatpayService) {        paymentController = new PaymentController(wechatpayService);    }    @PostMapping("/wechatpay/pay")    public PaymentResponse pay(@RequestBody PaymentRequest request) {        return paymentController.pay(request);    }}

在上面的示例中,我们定义了一个名为PaymentController的控制器,它接收一个PaymentService接口的实现类,并提供了一个名为pay的方法来调用支付服务。

然后,我们分别定义了支付宝控制器和微信支付控制器,并将它们的构造函数注入了AlipayService和WechatpayService接口的实现类,从而使用接口多态来调用不同的支付方式。

标签:

Feign 接口的多态_环球视讯

来源:腾讯云 2023-04-10 06:32:19

天翼宽带路由器怎么设置_天翼宽带无线路由器设置 天天新要闻

来源:互联网 2023-04-10 02:48:06

世界短讯!黟县发布干部任前公示公告 涉及乡镇党委书记等拟任人选

来源:大皖新闻 2023-04-09 22:00:32

美媒:起诉特朗普令美政坛动荡升级

来源:环球网 2023-04-09 20:12:31

配置Eureka Client

来源:腾讯云 2023-04-09 18:29:21

黄山自驾游攻略(黄山出发自驾游最佳景点攻略推荐) 每日快报

来源:红五百科 2023-04-09 17:03:00

环球讯息:知造网:专利权权属问题如何界定?

来源:哔哩哔哩 2023-04-09 14:53:43

大兴机场坐飞机中转,也有“管家”啦!

来源:北京日报客户端 2023-04-09 13:12:20

没签劳动合同解雇赔偿标准 全球看点

来源:法务网 2023-04-09 11:11:15

推进产教融合 上海建设管理职业技术学院揭牌|每日精选

来源:新民晚报 2023-04-09 09:50:26

医生的简笔画(来自石首一位医生的简笔画——生命的守护)

来源:红五百科 2023-04-09 07:46:23

行政机关实施加处罚款或者滞纳金超过多少_行政机关实施加处罚款或者滞纳金超过

来源:互联网 2023-04-09 04:52:36

全球即时:1999元神机诞生!Redmi Note 12 Turbo成了:用户好评率接近100%

来源:快科技 2023-04-08 22:58:24

热文:如何高效备课?6种高效备课方法,一定要知道

来源:红五百科 2023-04-08 20:53:23

细胞色素P450同工酶_关于细胞色素P450同工酶介绍

来源:互联网 2023-04-08 18:42:46

完善急救教育育人体系 教育部开展第二批全国学校急救教育试点工作 环球关注

来源:东北网 2023-04-08 17:08:39

每日看点!桃李不言下自成蹊说的是哪个历史人物_桃李不言下自成蹊老师

来源:互联网 2023-04-08 14:59:31

大港油田天然气公司深入社区治理燃气隐患 给居民家燃气装上“双保险”

来源:北方网 2023-04-08 13:16:58

研究:一颗太阳系外类地行星可能拥有磁场-天天新要闻

来源:新华网 2023-04-08 11:36:16

世界资讯:是它!空中突发巨响,官方证实

来源:环球时报 2023-04-08 10:14:55

40公里650块?女子春节期间遇天价代驾费!网友:春节这个价正常

来源:搜狐汽车 2023-04-08 08:49:29

天天热资讯!推陈出新,日本玩具增长有道

来源:环球时报 2023-04-08 06:44:17

肚脐眼太脏怎么清洗_肚脐眼很脏怎么清洗 全球快资讯

来源:互联网 2023-04-08 03:58:44

环球资讯:百色文旅宣传暨大健康文旅产业招商推介活动在深圳举行

来源:中新网广东 2023-04-07 22:59:47

观速讯丨财报速递:东威科技2022年全年净利润2.13亿元,总体财务状况优秀

来源:同花顺iNews 2023-04-07 21:12:30

高新发展:启宸基金目前已有项目在挖掘储备中

来源:红周刊综合整理 2023-04-07 19:53:23

当前时讯:蒙泰高新:拟收购海宁广源化纤有限公司51%股权

来源:互联网 2023-04-07 18:53:34

〖孔明·解密〗4月7日涨停个股揭秘

来源:孔明看市 2023-04-07 17:50:40

当前头条:婴儿多大可以用枕头_婴儿枕头装小米好吗

来源:互联网 2023-04-07 17:05:06

绝版发售 限定狂欢!坦克300铁骑02最后一波4月10日来袭 视点

来源:互联网 2023-04-07 15:57:29

Copyright   2015-2022 海峡知识产权网 版权所有  备案号:皖ICP备2022009963号-10   联系邮箱:396 029 142 @qq.com