dubbo源码阅读之-dubbo-spi机制中的配置文件都可以存放再哪个路径下
- url图
- ExtensionLoader 类中
- 加载源码分析
url图
根据上图可以知道 存放的路径和优先级,我们也可以自定义一个路径
ExtensionLoader 类中
private static volatile LoadingStrategy[] strategies = loadLoadingStrategies();
private static LoadingStrategy[] loadLoadingStrategies() {
return stream(load(LoadingStrategy.class).spliterator(), false).sorted()
.toArray(LoadingStrategy[]::new);
}
public static <S> ServiceLoader<S> load(Class<S> service) {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
return ServiceLoader.load(service, cl);
}
可以看出来是用的java原生的ServiceLoader 加载所有的加载策略,最后存储到一个数组中
默认加载策略有
org.apache.dubbo.common.extension.DubboInternalLoadingStrategy
org.apache.dubbo.common.extension.DubboLoadingStrategy
org.apache.dubbo.common.extension.ServicesLoadingStrategy
加载源码分析
org.apache.dubbo.common.extension.ExtensionLoader#getExtensionClasses 入口
loadExtensionClasses
后面补充。。。。。