Java-面试-基础-3-SPI

SPI 是什么?服务提供者的接口,是 Java (调用者)给服务提供者(被调用者)指定的接口。

SPI与API的区别:

  • SPI:服务调用者制定接口,被调用者去实现接口
  • API:被调用者制定并实现了接口,服务调用者去适配这种接口。

提供了一种服务发现机制,允许在程序外部动态指定具体实现。这与控制反转(IoC)的思想相似,将组件装配的控制权移交给了程序之外。

也解决了双亲委派模型带来的限制。

缺点:

  • 需要遍历
  • 有并发问题