SPI demo 小例子

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常用于驱动处理,可以将调用者和服务者进行解耦,提高了代码的可扩展性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值