SPI概念
- spi提供了一種機(jī)制可以用來(lái)被第三方擴(kuò)展和實(shí)現(xiàn)
- spi的核心作用就是為這些api尋找實(shí)現(xiàn)
java原生SPI實(shí)現(xiàn)方法
- 定義接口
public interface HelloSpi {
void hello();
}
- 寫實(shí)現(xiàn)類
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
- 新建文件 文件名稱和接口的名稱一致
- 在文件中寫入接口的實(shí)現(xiàn)類
- 測(cè)試
public class Main {
public static void main(String[] args) {
ServiceLoader<HelloSpi> load = ServiceLoader.load(HelloSpi.class);
for (HelloSpi spi : load) {
spi.hello();
}
}
}