dubbo系列--dubbo中是如何实现IOC的

Dubbo源码解析:ExtensionLoader和IOC
在前面dubbo源码翻阅中已经提过一些相关的IOC的。大致为以下几点:
- 在讲解ExtensionLoader源码的构造函数的时候,我们说过,每一个ExtensionLoader实例都有一个 objectFactory 属性,他是实现Ioc的关键;
- 相比较于JDK的SPI机制,dubbo的SPI机制支持扩展通过setter的方式来注入其他扩展点。
- 在调用ExtensionLoader的getExtension方法时,在获取了相应的class并创建了instance之后,通过injectExtension(intance)方法来通过setter的方式来注入其他扩展点。
loadFile函数解析注解@SPI配置时,假如这个类带@Adaptive注解,缓存到cachedAdaptiveClass。
再看源码:创建一个ExtensionLoader对象
<figure class="kg-card kg-image-card">
<img src="https://qiniu.meowparty.cn/coder.2023/2025-01-22/Lesson-00f41475c6b9d.png" class="kg-image" alt="www.zeeklog.com - dubbo系列--dubbo中是如何实现IOC的" loading="lazy">
</figure>
这里的调用的是一个私有构造方法。