Dubbo的SPI机制
- java spi需要遍历实现所有的实现并实例化,然后我们在循环中才能找到我们需要的实现
- 配置文件中只是简单的列出了所有的扩展实现,而没有给他们命名。导致在程序中很难去准确的引用它们
- 不提供类似于Spring的IOC和AOP功能
- 扩展很难和其他的框架集成,比如扩展里面依赖了一个Spring bean,原生的Java SPI不支持
基础概念:
Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
1.1 扩展点(Extension Point)
是一个Java的接口。(Protocol)
1.2 扩展(Extension)
扩展点的实现类。(DubboProtocol)
1.3 扩展实例(Extension Instance)
扩展点实现类的实例。(ExtensionLoader.getExtensionLoader(Protocol.class))
1.4 扩展自适应实例(Extension Adaptive Instance)
java动态生成字节码Protocol$Adaptive
dubbo基础知识
原文:https://www.cnblogs.com/faker2014/p/11054483.html