目录
背景
近来看Hasor、Dubbo等框架都说到微内核(Microkernel),想想jdk、srping、dubbo、hasor等都谈SPI,决定随笔记录下各个框架的spi,文章主要谈jdk、spring、dubbo的spi机制,出于目前的水平看来,spi就是一种偷懒方式,框架内都是针对接口编程,而实现自己可做可不做,谁做的好可以插进来就用就完了。
1、jdk的spi
jdk的spi先说说java.util.ServiceLoader这个类吧,先看看咋用的尝试下spi,
//定义服务提供接口
public interface JdkProvider {
int calculate(int x,int y);
}
//第一个服务
public class JdkFirstProvider implements JdkProvider {
public int calculate(int x, int y) {
System.out.println("JdkFirstProvider给出 2(x+y)");
return 2*(x+y);
}
}
//第二个服务
public class JdkSecondProvider implements JdkProvider {
public int calculate(int x, int y) {
System.out.println("JdkSecondProvider给出 x+y");
return x + y;
}
}