概述
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的链式调用,轻松的实现
aop的功能。
4.dubbo具体是如果实现增加扩展的
最后
以上就是慈祥月光为你收集整理的dubbo之SPI模式之扩展增强的全部内容,希望文章能够帮你解决dubbo之SPI模式之扩展增强所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复