JAVA中的SPI实现
SPI简介
SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现,目前Dubbo框架就基于SPI机制提供扩展功能
实例代码
废话不多说,上代码
1.定义一个接口:
package com.ywsc.fenfenzhong.spi.learn;
import java.util.List;
public interface Search {
public List searchDoc(String keyword);
}
2.DatabaseSearch 实现类:
package com.ywsc.fenfenzhong.spi.learn;
import java.util.List;
public class DatabaseSearch implements Search{
@Override
public List searchDoc(String keyword) {
System.out.println(“数据库搜索”+keyword);
return null;
}
}
3.FileSearch实现类:
package com.ywsc.fenfenzhong.spi.learn;
import java.util.List;
public class FileSearch implements Search{
@Override
public List searchDoc(String keyword) {
System.out.println("文件搜索 "+keyword);
return null;
}
}
4.测试类:
package com.ywsc.fenfenzhong.spi.learn;
import java.util.Iterator;
import java.util.ServiceLoader;
public class Test {
public static void main(String[] args) {
ServiceLoader s = ServiceLoader.load(Search.class);
Iterator iterator = s.iterator();
while (iterator.hasNext()) {
Search search = iterator.next();
search.searchDoc(“hello world”);
}
}
}
让我们跑起来…