概述
JAVA 插件机制 - java SPI
java 官方提供自己的插件机制 【点击进入官方插件机制文档】本文内容是对官方文档的理解加实践。
文章目录
- JAVA 插件机制 - java SPI
- 实现java SPI大约需要三个步骤
- 定义插件接口
- 编写插件
- 加载插件
实现java SPI大约需要三个步骤
定义插件接口
实现Spi 首先要定义一个SPI接口,以后的拓展插件都需要实现这个接口
个人理解:设计模式的六大原则之一: 依赖倒置原则
-
上层模块不应该依赖底层模块,它们都应该依赖于抽象。
-
抽象不应该依赖于细节,细节应该依赖于抽象。
既然是插件当然是不能依赖于细节,要依赖于抽象接口,因此必须定义一个接口
eg:
package test.api;
public interface MyApi {
void myTestFunction();
}
编写插件
新起一个插件项目,然后导入之前定义的接口的依赖,编写插件的实现
package test;
import test.api.MyApi;
public class MyTest implements MyApi {
@Override
public void myTestFunction() {
System.out.println("this is MyTest");
}
}
编写插件的项目里必须在 META-INF目录下建立 services 目录,然后在目录下新建文件 文件名为接口全名比如我的接口名称:test.api.MyApi,然后在文件里面编写自己实现类的类全名,比如我的:test.MyTest
加载插件
java 自带的SPI加载插件当然是用java原生的方式:ServiceLoader
eg:
public class Main {
public static void main(String[] args) throws Exception{
ServiceLoader<MyApi> load = ServiceLoader.load(MyApi.class);
for (MyApi myApi: load){
myApi.myTestFunction();
}
}
}
加载到插件之后就可以直接使用
最后
以上就是糊涂小熊猫为你收集整理的JAVA自带插件机制JAVA 插件机制 - java SPI的全部内容,希望文章能够帮你解决JAVA自带插件机制JAVA 插件机制 - java SPI所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复