开篇

 SPI全称为Service Provider Interface,是一种服务提供机制,比如在现实中我们经常会有这种场景,就是对于一个规范定义方而言(可以理解为一个或多个接口),具体的服务实现方是不可知的(可以理解为对这些接口的实现类),那么在定义这些规范的时候,就需要规范定义方能够通过一定的方式来获取到这些服务提供方具体提供的是哪些服务,而SPI就是进行这种定义的。

JDK SPI例子

说明:

  • 首先规范制定方会定义一个接口org.apache.jdk.spi.example.IHello 。
  • 其次在项目目录下的 -INF/service名称为org.apache.jdk.spi.example.IHello的文件,包含SPI实现接口全路径。
  • 通过ServiceLoader加载访问调用即可。
  • 对于jdk的SPI,其主要存在两个问题,
收藏 打印