Dubbo 源码分析
Dubbo SPI 系列文章 浅谈 Java SPI Dubbo SPI 使用方法(一)- 扩展点自动包装 Dubbo SPI 使用方法(二)- 扩展点自适应 Dubbo SPI 使用方法(三)- 扩展点自动装配 Dubbo 源码分析 - Dubbo SPI 在 Protocol 层 的应用 Dubbo 源码分析 - Dubbo SPI 通过 getExtension 获取扩展点实现类对象 前言 上一篇文章 Dubbo 源码分析 - Dubbo SPI 获取扩展点实现类对象 分析了 Dubbo SPI 通过 getExtension(String name) 如何获取扩展点实现类对象, 本文接着通过剖析 Dubbo 源码的方式看一下 getAdaptiveExtension() 方法是如何获取自适应扩展点实例的. 正文 1. ExtensionLoader 部分属性 // 1. 缓存的自适应扩展点实例 private final Holder<Object> cachedAdaptiveInstance = new Holder<>(); // 2. 自适应扩展点实现类 private volatile Class<?> cachedAdaptiveClass = null; 2. ExtensionLoader#getAdaptiveExtension() 从自适应扩展点实例