ExtensionLoader的工作原理
Dubbo在启动的时候默认会扫描这三个目录下的配置,以加载需要的扩展类
/META-INF/services
/META-INF/dubbo
/META-INF/dubbo/internal
ExtensionLoader是Dubbo SPI中用来加载扩展类的,有如下三个重要方法,搞懂这3个方法基本上就搞懂Dubbo SPI了。
加载扩展类的三种方法如下
- getExtension(),获取普通扩展类
- getAdaptiveExtension(),获取自适应扩展类
- getActivateExtension(),获取自动激活的扩展类
我们以源码中的例子分析Dubbo SPI的实现。
getExtension(实现自动装载,自动包装,即IOC和AOP)
使用例子
获取Exchanger层的实现,通过名字直接获取实现,并没有根据url中的参数获取实现