Java SPI 扩展点

SPI 全称Service Provider Interface
协议约定:扩展点必须放在resources/META-INF/services目录下
创建一个maven工程,定义一个接口,实现由第三方提供

public interface ITest
{
     
String getName();
}

创建另一个maven工程依赖前一个工程
创建接口实现

public class MyTestName implements ITest
{
     
public String getName()
{
     
return "MyTestName";
}
}

在resources/META-INF/services目录下创建一个接口的全路径命名的文件 com.mytest.ITest在里面写实现类的扩展com.mytest.name.MyTestName

创建一个测试类。使用ServicefLoader加载对应的扩展点,

public class SpiMain {
     
public static void main(String args[])
{
     
ServiceLoader<ITest> serviceLoader=ServiceLoader.load(ITest.class);
serviceLoader.forEach(test->System.out.println(test.getName()))
}
}

你可能感兴趣的:(Java SPI 扩展点)