天天看點

Dubbo源碼Debug-Spi解析

Dubbo源碼Debug-Spi解析

ExtensionLoader

Dubbo源碼Debug-Spi解析

ExtensionLoader的靜态成員變量

Dubbo源碼Debug-Spi解析

擷取ExtensionLoader的條件和存儲HashMap

Dubbo源碼Debug-Spi解析

必須是加了@SPI注解的接口

Dubbo源碼Debug-Spi解析

擷取激活擴充,必須是打了@Activate的接口或方法

總結:1、Dubbo的Spi機制是通過ExtensionLoader的靜态成員變量存儲每個加了@SPI注解的接口生成ExtensionLoader執行個體存儲concurrentHashMap中。

2、加了SPI注解的接口有:ProxyFactory、Protocol、Cluster、Filter、Exchanger、AdaptiveExtensionFactory、RegistryFactory.....

3、過程主要包括加載左右的資源檔案資訊、Inject、Wrapper、Filter過程(注入Ioc和Aop見另外兩篇文章解析)。