SPI demo 小例子
一、SPI机制是什么?
spi全称为 (Service Provider Interface),是JDK内置的一种服务提供发现机制。SPI是一种动态替换发现的机制,一种解耦非常优秀的思想。
二、简单实现
1、目录层级

2、接口定义
public interface ITest {
void run();
}
3、接口实现
public class ITestOneImpl implements ITest {
@Override
public void run() {
System.out.println("ITestOneImpl:run");
}
}
public class ITestTweImpl implements ITest {
@Override
public void run() {
System.out.println("ITestTweImpl.run");
}
}
4、在resources文件夹下创建: META-INF/services 目录,且以接口全路径名文件,并写入需要调用的实现类(全路径)

5、编写测试类
public class Test {
public static void main(String[] args) {
ServiceLoader<ITest> serviceLoader = ServiceLoader.load(ITest.class);
Iterator<ITest> iterator = serviceLoader.iterator();
while (iterator.hasNext()) {
ITest car = iterator.next();
car.run();
}
}
}
结果输出:
ITestOneImpl:run
ITestTweImpl.run
这样就能发现调用的我们的接口实现类的run方法了
三、总结
不难发现,SPI机制理念是采用了文件配置来寻找接口的具体实现类,SPI常用于驱动处理,可以将调用者和服务者进行解耦,提高了代码的可扩展性。
文章介绍了Java的SPI(ServiceProviderInterface)机制,这是一种通过文件配置发现并加载接口实现的动态机制,旨在实现调用者和服务提供者的解耦,提高代码可扩展性。文中通过一个简单的示例展示了如何定义接口、实现接口、配置服务文件以及如何在程序中加载和使用这些服务。
1262

被折叠的 条评论
为什么被折叠?



