
1.在meta-INF/dubbo/internal下建立配置文件
com.test.spi.PrintService
文件内容:
impl = com.test.spi.PrintServiceImpl
@SPI("impl")
public interface PrintService{
void printInfo();
}
public class PrintServiceImpl implements PrintServcie{
@Override
public void printInfo(){
System.out.println("hello world");
}
}
public static void main(String[] args){
PrintService printService = ExtensionLoader
.getExtensionLoader(PrintService.class)
.getDefaultExtension();
printService.printInfo();
}
Java SPI加载失败,可能会因为各种原因导致异常信息被吞掉,导致开发人员问题追踪比较困难,DubboSpi在扩展加载失败的时候会先抛出真实异常并打印日志,扩展点在被动加载的时候,即使有部分扩展加载失败也不会影响其他扩展点和整个框架的使用