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