dubbo之SPI模式之扩展增强

1.前言
在spring aop中可以使用多个切面对指定类的方法进行增强,在dubbo中也提供了类似的功能,在dubbo中你可以指定多个wrappwe类对指定的扩展点的实现的方法进行增强。也就是通过SPI返回的不再是纯粹的扩展点的实现类,而是被wrapper后的类。
2.一般情况

private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();

如果说没有spi扩展点增加自动装配,上面的代码返回的就是适配“dubbo”protocol的DubboProtocol类。

3.SPI扩展增强的实现
private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();

增强后上述代码的执行流程,
1.判断 registry 是不是等于 dubbo,等于加载registry协议,不等于就执行2。
2.判断Registry的构造方法,观察构造函数中是否存在Protocol声明定义的变量,如果有则作为dubbo协议的包装类进行加载,如果没有则重新跳回1验证下一条记录filter。
3.从名字中我们也可以看出filter和listener实现2个对dubbo协议扩展的包装类,中filter包装了dubbo的链式调用,轻松的实现

扫描二维码关注公众号,回复: 909482 查看本文章
aop的功能。

4.dubbo具体是如果实现增加扩展的




猜你喜欢

转载自blog.csdn.net/qq_31872713/article/details/80161249