Java SPI机制简介
2018-12-31 13:35 GarfieldEr007 阅读(216) 评论(0) 编辑 收藏 举报SPI 简介
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
from: https://www.cnblogs.com/zhongkaiuu/articles/5040971.html