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的鏈式調用,輕鬆的實現

aop的功能。

4.dubbo具體是如果實現增加擴展的




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章