dubbo源码--学习jdk的spi
JDK SPI 深入解析
什么是 SPI?
SPI 是 JDK 内置的一种服务提供发现机制,目前市面上有很多框架都是用它来做服务的扩展发现。例如 JDBC、日志框架等都使用了 SPI。
简单来说,SPI 是一种动态替换发现的机制。举个简单的例子,如果我们定义了一个规范,并需要第三方厂商去实现,那么对于我们应用方来说,只需要集成对应厂商的插件,就可以完成对应规范的实现机制。从而形成一种插拔式的扩展手段。
SPI 规范总结
要实现 SPI,就需要按照 SPI 本身定义的规范来进行配置。SPI 规范如下:
- 需要在
classpath
下创建一个目录,该目录命名必须是:META-INF/services
- 在该目录下创建一个 properties 文件,该文件需要满足以下几个条件:
- 文件名必须是扩展的接口的全路径名称
- 文件内部描述的是该扩展接口的所有实现