Java-JDK-SPI

Java JDK SPI 机制

基础概念

SPI (service provider interface),是一个旨在由第三方实现或扩展的 API,它可用于启用框架扩展和可替换组件。

最佳实践

从定义上来看不够直观,通过一个常见的实践来理解下

数据库连接驱动 java.sql.Driver ,JDK 定义规范,具体细节由各数据库厂商 (mysql, oracle等) 进行实现,使用 SPI 机制加载对应插件驱动,即可使用 Jdbc 操作数据库

使用流程

  • SpringBoot 的自动装配也由类似SPI机制
  • Dubbo,其实现分层,初顶部两层外各层均插件化,仅定义规范,具体实现交由 SPI 加载,但此机制并非 JDK 自带,框架内部增强

  • Springboot