SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现,
而后,把新加的实现,描述给JDK知道就行啦(通过改一个文本文件即可) 公司内部,目前Dubbo框架就基于SPI机制提供扩展功能。
简单示例
通过一个简单例子来说明SPI是如何使用的。 首先通过一张图来看看,用SPI需要遵循哪些规范,因为spi毕竟是JDK的一种标准。 我们首先需要一个目录,META-INF\services 如下,最终的目录路径就像这样:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
文件名字为 接口/抽象类: 全名 文件内容: 接口/抽象类 实现类
就像这样: com.ivanzhang.spi.impl.TextHello
com.ivanzhang.spi.impl.ImageHello
接下来, 我们需要定义接口和实现类:
1 2 3 |
|
实现类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
最后,来看看,如果使用SPI机制,客户端代码:
1 2 3 4 5 6 7 8 9 10 11 |
|
最后的输出: Text Hello.Image Hello
相关推荐
java spi 可运行 demo
提供JAVA SPI实现的简单例程, 希望能有用。
这个资源是我的博客《java SPI机制学习笔记》中的提供服务的jar包
演示如何用java SPI来做一个类似插件系统。无需任何IDE,只要有JDK即可。命令行操作,无公害。
java spi简单参考,url:https://blog.csdn.net/a925907195/article/details/87088744 主类:testcase,代码很简单,只是自己写个demo看看运行原理
Java SPI 机制(SPI实战+ServiceLoader源码分析+SPI 应用场景+破坏双亲委派)
这个jar包用来解析MP3的音频文件,可以使用java的sound包中的类进行播放MP3音频文件
java的spi测试,主要是两个接口的实现类和demo。。。。。
Java类加载及SPI机制.pdf
java 干旱SPI逐日计算 90天150天,基于mysql表
java mp3spi jar java 处理mp3 jar 包
Java SPI机制详解.md
JAVA SPI原理源码详细介绍,MD格式,有大纲目录
主要介绍了Java SPI的简单小实例,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
spi-示例.rar
该项目主要用来演示通过 Java SPI 和 Spring factories 两种方式来实现插件化
java中的Spi使用实例,详情请见文章http://blog.csdn.net/evankaka/article/details/58265019
如何拼写 SPI(服务提供者接口)? 用 Java 编程语言编写的服务可以由不同的服务提供者实现。 虽然服务通常是用接口或抽象类编写的,但服务提供者是实现这些接口服务的实现类。 java.util.ServiceLoader类从 Java...
主要介绍了Java SPI机制原理及代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下