SPI和API之间的区别?

服务提供商接口(SPI)应用程序编程接口(API)

更具体地说,对于Java库,是什么使它们成为API和/或SPI

  • API是类/接口/方法/的描述。。。您呼叫并使用实现目标,以及
  • SPI是类/接口/方法/的描述。。。扩展并实施以实现目标

换句话说,API告诉您特定的类/方法为您做了什么,SPI告诉您必须做什么才能符合

通常API和SPI是分开的。例如,在JDBC中<a href=”http://java.sun.com/javase/6/docs/api/java/sql/Driver.html“rel=”noreferrer“驱动程序类是SPI的一部分:如果您只是想使用JDBC,您不需要直接使用它,但是每个实现JDBC驱动程序的人都必须实现该类

然而,有时它们会重叠连接接口是既SPI又API:当您使用JDBC驱动程序时,您通常会使用它,它需要由JDBC驱动程序的开发人员实现

发表评论