Soul 学习笔记---插件流程初步分析(十二)

springcloud ,divide插件都能跑通了,现在就看下请求是如何转发的。

从调用栈可以看到,程序进来的入口类是 SoulWebHandler。

后面在 AbstractSoulPlugin 中,遍历 plugin list,一个个去调用开启的插件。这就是传说中的责任链模式了。责任链模式是行为型设计模式的一种,为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。一般每个接收者包含对另一个接收者的引用,如果一个对象不能处理该请求,那么会将请求传递给下一个接收者。

image-20210127224503300

可以看到 chain 上面绑定了好几层。

image-20210127231303557

这里就是一个个去执行插件。

这个 skip 方法,每个插件也是有自己的内部实现。如果 skip 为true,就去执行下一个插件,否则在当前插件执行。这里判断 DividePlugin 就是 rpcType 需要是 HTTP 的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值