阅读 56

SPI

SPI 全称 Service Provider Interface,是JDK内置的一种服务提供发现机制。它是一种动态替换发现的机制。目前有不少框架用它DUBBO,common-loggin,JDBC等等

1. 简单Demo

1. 目录结构

2. 具体实现

package org.chasel.spi;
public interface HelloInterface {
    void sayHello();
}
复制代码
package org.chasel.spi.impl;
import org.chasel.spi.HelloInterface;
public class ImageHello implements HelloInterface {
    public void sayHello() {
        System.out.println("Image hello");
    }
}
复制代码
package org.chasel.spi.impl;
import org.chasel.spi.HelloInterface;
public class TextHello implements HelloInterface {
    public void sayHello() {
        System.out.println("Text Hello");
    }
}
复制代码
package org.chasel.spi;
import java.util.ServiceLoader;

public class SPIMain {
    public static void main(String[] args) {
        ServiceLoader<HelloInterface> loaders = ServiceLoader.load(HelloInterface.class);
        for (HelloInterface in : loaders) {
            in.sayHello();
        }
    }
}
复制代码
# org.chasel.spi.HelloInterface 
# 注意 文件名称
org.chasel.spi.impl.ImageHello
org.chasel.spi.impl.TextHello
复制代码
package org.chasel.spi;
import java.util.ServiceLoader;
public class SPIMain {
    public static void main(String[] args) {
        ServiceLoader<HelloInterface> loaders = ServiceLoader.load(HelloInterface.class);
        for (HelloInterface in : loaders) {
            in.sayHello();
        }
    }
}
复制代码

https://cxis.me/2017/04/17/Java%E4%B8%ADSPI%E6%9C%BA%E5%88%B6%E6%B7%B1%E5%85%A5%E5%8F%8A%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/

http://www.wolfbe.com/detail/201701/386.html