目录

spi全称

SPI的全名为Service Provider Interface

spi原理简单介绍

例子

接口定义

public interface Search {
    void search(String keyword);
}  

实现类1

public class FileSearch implements Search {
  
    public void search(String keyword) {
        System.out.println("file: " + keyword);
    }
} 

实现类2

public class DatabaseSearch implements Search {
  
    public void search(String keyword) {
        System.out.println("database: " + keyword);
    }
} 

主函数

    public static void main(String[] args) {
        ServiceLoader<Search> s = ServiceLoader.load(Search.class);
        Iterator<Search> searchs = s.iterator();
        if (searchs.hasNext()) {
            Search curSearch = searchs.next();
            curSearch.search("test");
        }else{
            System.out.println("end");
        }
    }

配置文件(文件名:接口名称,内容:实现类名称)