概述
对于Java SPI会分为两篇文章来介绍,第一篇文章会简单介绍如何实现一个Java SPI Demo学习,第二篇文章会从JDK源码角度来分析Java SPI实现原理
什么是Java SPI
SPI的全称是Service Provider Interface,是JDK内置的一种服务发现机制。通过SPI我们可以动态加载我们定义的服务实现类。
Demo展示
定义一个接口
package com.spi;
public interface ISpi {
void say();
}
编写两个实现类
package com.spi;
public class FirstSpiImpl implements ISpi {
@Override
public void say() {
System.out.println("我是第一个SPI实现类");
}
}
package com.spi;
public class SecondSpiImpl implements ISpi {
@Override
public void say() {
System.out.println("我是第二个SPI实现类");
}
}
编写配置文件
在src根目录创建文件夹META-INF/services,在创建的文件夹下面创建一个文件,命名为SPI接口的全路径名,并写上需要动态加载的实现类的全路径名:
com.spi.FirstSpiImpl
com.spi.SecondSpiImpl
编写运行程序
package com.spi;
import java.util.ServiceLoader;
/**
* Hello world!
*/
public class App {
public static void main(String[] args) {
ServiceLoader<ISpi> serviceLoader = ServiceLoader.load(ISpi.class);
for (ISpi service : serviceLoader) {
service.say();
}
}
}
输出内容为
我是第一个SPI实现类
我是第二个SPI实现类
读者可以随意增删配置内容,查看具体输出。
文件结构图
关于SPI入门学习只需要看到这就可以来,下一篇文章会从JDK源码角度来详细分析SPI原理,敬请关注~~
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦