Java SPI 使用与注意
2021-02-01 06:13
标签:spl rgb display log question href override 配置文件 bee 前面简单介绍了 SPI 机制的原理,本节通过一个示例演示 Java SPI 的使用方法。首先,我们定义一个接口,名称为 Robot。 接下来定义两个实现类,分别为 OptimusPrime 和 Bumblebee。 接下来 META-INF/services 文件夹下创建一个文件,名称为 Robot 的全限定名 org.apache.spi.Robot。文件内容为实现类的全限定的类名,如下: 做好所需的准备工作,接下来编写代码进行测试。 这时我们 中途 增加一个interface 的实现时l 如: 则通过以下代码进行接口更新:(更新的同时并不会运行,但是在下次调用的时候 将会执行新实现的接口,并且相同的只会执行一次) 第一次运行 第二次运行 配置文件内容: Java SPI 使用与注意 标签:spl rgb display log question href override 配置文件 bee 原文地址:https://www.cnblogs.com/dgwblog/p/12815049.htmlJava SPI 示例
public interface Robot {
void sayHello();
}
public class OptimusPrime implements Robot {
@Override
public void sayHello() {
System.out.println("Hello, I am Optimus Prime.");
}
}
public class Bumblebee implements Robot {
@Override
public void sayHello() {
System.out.println("Hello, I am Bumblebee.");
}
}
org.apache.spi.OptimusPrime
org.apache.spi.Bumblebee
public class MainTSpi {
public static void main(String[] args) {
ServiceLoader
扩展
public class RATCHET implements Robot{
@Override
public void sayHello() {
System.out.println("Hello, I am RATCHET.");
}
}
/**
* @description:
* @author: Mr.Dai
* @create: 2020-05-01 21:36
**/
public class MainTSpi {
public static void main(String[] args) throws IOException {
ServiceLoader
Java SPI
Hello, I am Optimus Prime.
Hello, I am Bumblebee.
Hello, I am Optimus Prime.
Hello, I am Bumblebee.
Java SPI
Hello, I am Optimus Prime.
Hello, I am Bumblebee.
Hello, I am RATCHET.
Hello, I am Optimus Prime.
Hello, I am Bumblebee.
Hello, I am RATCHET.
com.dgwcode.spi.OptimusPrime
com.dgwcode.spi.Bumblebee
com.dgwcode.spi.RATCHET
com.dgwcode.spi.RATCHET
上一篇:C#中字符串常用方法
下一篇:Java中的构造方法