您的位置 首页 java

java的spi机制示例

java的SPI(Service Provider Interface)机制,通过线程上下文类加载器打破类加载的双亲委派模型,达到动态加载外部实现的目的.

是一个非常优秀的设计,我这里写个简单示例体验一下.

需要注意的是:不可以使用内部类接口、内部类实现.

示例代码

public static void main(String[] args) {

ServiceLoader<SPIInter> tSPIInterLoader = ServiceLoader.load(SPIInter.class);

for (SPIInter tSPIInter : tSPIInterLoader) {

tSPIInter.method1();

System.out.println(tSPIInter.method2(“test SPI”));

}

}

public interface SPIInter {

void method1();

String method2(String param1);

}

public class Inter1Imp1 implements SPIInter {

public void method1() {

System.out.println(“method1 Impl 1”);

}

public String method2(String param1) {

return param1 + “method2 Impl 1”;

}

}

public class Inter1Imp2 implements SPIInter {

public void method1() {

System.out.println(“method1 Impl 2”);

}

public String method2(String param1) {

return param1 + “method2 Impl 2”;

}

}

META-INF/services/module.SPIInter

module.Inter1Imp1

module.Inter1Imp2

}

输出

method1 Impl 1

test SPImethod2 Impl 1

method1 Impl 2

test SPImethod2 Impl 2

文章来源:智云一二三科技

文章标题:java的spi机制示例

文章地址:https://www.zhihuclub.com/182706.shtml

关于作者: 智云科技

热门文章

网站地图