开篇
前面已经讲到了:
本文来讲下 Dubbo SPI - 扩展点自动装配, 即 Dubbo 实现的 IOC , 用一段简单代码来解释下:
当实例化 A 时, 发现 A 依赖了 B, 并且有对应的 set 注入方法, 那么 Dubbo 就会顺便把 B 也实例化, 并注入到 A 对象中.
public class A {
private B b;
public void setB(B b) {
this.b = b;
}
}
正文
1. 概念
上面简单的介绍了 IOC, 那么接下来看看 Dubbo SPI - 扩展点自动装配是如何做的.
引用官网的一段介绍
加载扩展点时,自动注入依赖的扩展点。
加载扩展点时,扩展点实现类的成员如果为其它扩展点类型,ExtensionLoader 在会自动注入依赖的扩展点。
ExtensionLoader 通过扫描扩展点实现类的所有 setter 方法来判定其成员。即 ExtensionLoader 会执行扩展点的拼装操作。