SPI机制深入理解
提示
接下来,我们深入理解下SPI相关内容
# SPI机制通常怎么使用
看完前面的几个例子解析,应该都能知道大概的流程了:
有关组织或者公司定义标准。
具体厂商或者框架开发者实现。
程序猿使用。
# 定义标准
定义标准,就是定义接口。比如接口java.sql.Driver
# 具体厂商或者框架开发者实现
厂商或者框架开发者开发具体的实现:
在META-INF/services目录下定义一个名字为接口全限定名的文件,比如java.sql.Driver文件,文件内容是具体的实现名字,比如me.cxis.sql.MyDriver。
写具体的实现me.cxis.sql.MyDriver,都是对接口Driver的实现。
# 程序猿使用
我们会引用具体厂商的jar包来实现我们的功能:
ServiceLoader<Driver> loadedDrivers = ServiceLoader.load(Driver.class);
//获取迭代器
Iterator<Driver> driversIterator = loadedDrivers.iterator();
//遍历
while(driversIterator.hasNext()) {
driversIterator.next();
//可以做具体的业务逻辑
}
# 使用规范
最后总结一下jdk spi需要遵循的规范
------
原文链接:https://pdai.tech/md/java/advanced/java-advanced-spi.html
|