java原生SPI

SPI概念

  • spi提供了一种机制可以用来被第三方扩展和实现
  • spi的核心作用就是为这些api寻找实现

java原生SPI实现方法

  1. 定义接口
public interface HelloSpi {
    void hello();
}
  1. 写实现类
  • 实现类1
public class HelloSpiImpl01 implements HelloSpi {
    @Override
    public void hello() {
        System.out.println("hello spi 01");
    }
}
  • 实现类2
public class HelloSpiImpl02 implements HelloSpi {
    @Override
    public void hello() {
        System.out.println("hello word spi2");
    }
}
  1. 在resources目录下新建文件夹 META-INF/services
  2. 新建文件 文件名称和接口的名称一致
  3. 在文件中写入接口的实现类
  4. 测试
public class Main {
    public static void main(String[] args) {
        ServiceLoader<HelloSpi> load = ServiceLoader.load(HelloSpi.class);
        for (HelloSpi spi : load) {
            spi.hello();
        }
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容