dubbo源码分析 -- dubbo的SPI机制
概念 在dubbo的整体结构中,除了service层和config层,其他各层都支持自定义扩展。而自定义扩展的实现,就是dubbo实现的一套类似SPI的扩展点加载机制。在这个机制中,ExtensionLoader是核心类。 组件 ExtensionLoader dubbo SPI机制的主要使用入口,基本就是通过这个类来使用和实现SPI机制的 ExtensionFactory dubbo的SPI机制,具备Ioc的功能特性。其实现主要由ExtensionFactory支持。大概的逻辑就是,如果某个组件具有setXX方法,则会通过ExtensionFactory为其注入依赖。ExtensionFactory在dubbo中,就类似与spring的BeanFactory,算是一种容器。 接口定义 @SPI //本身也支持dubbo的扩展点机制 public interface ExtensionFactory { //获取扩展类 < T > T getExtension ( Class < T > type , String name ) ; } 子类 SpringExtensionFactory:关联了spring的ApplicationContext SpiExtensionFactory:通过dubbo自己的SPI机制,读取指定目录下的文件