cached 函數 bsp load 包裝 aop loader 緩存 mage

在 ExtensionLoader 類的loadFile方法中有下圖的這段代碼:

技術分享

類如現在這個ExtensionLoader中的type 是Protocol.class,也就是SPI接口的實現類中XxxProtocol類中有這樣的構造函數 public XxxProtocol ( Protocol object) ,這個構造函數顯然說明XxxProtocol有包裝或代理這個object的意思。所以當發現了這樣特點的實現類後,就會把它緩存到wrappers這個變量中,最終緩存在ExtensionLoader的實例屬性 cachedWrapperClasses中。

Dubbo的SPI機制(6)——AOP