SPI是什么
SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。
Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。
使用SPI机制的好处就在于使得模块间能基于接口编程,而不用对实现类进行硬编码。
Java SPI的使用
步骤
- 接口实现类需要在jar包的META-INF/services目录下创建一个文件,文件名为“接口全限定名”,内容为实现类的全限定名。
- 接口实现类必须带一个无参构造器。
- 通过java.util.ServiceLoder#load(…)方法可以加载实现类对象。
Demo
接口:
package world.shuashua;
public interface Handler {
void doHandler();
}
实现类-1:
package world.shuashua;
public class HandlerImplOne implements Handler {
public void doHandler(