SPI概念
- spi提供了一种机制可以用来被第三方扩展和实现
- spi的核心作用就是为这些api寻找实现
java原生SPI实现方法
- 定义接口
public interface HelloSpi {
void hello();
}
- 写实现类
public class HelloSpiImpl01 implements HelloSpi {
@Override
public void hello() {
System.out.println("hello spi 01");
}
}
public class HelloSpiImpl02 implements HelloSpi {
@Override
public void hello() {
System.out.println("hello word spi2");
}
}
- 在resources目录下新建文件夹 META-INF/services
- 新建文件 文件名称和接口的名称一致
- 在文件中写入接口的实现类
- 测试
public class Main {
public static void main(String[] args) {
ServiceLoader<HelloSpi> load = ServiceLoader.load(HelloSpi.class);
for (HelloSpi spi : load) {
spi.hello();
}
}
}