Java JDK SPI 机制
基础概念
SPI (service provider interface)
,是一个旨在由第三方实现或扩展的 API,它可用于启用框架扩展和可替换组件。
最佳实践
从定义上来看不够直观,通过一个常见的实践来理解下
数据库连接驱动 java.sql.Driver
,JDK 定义规范,具体细节由各数据库厂商 (mysql, oracle等) 进行实现,使用 SPI 机制加载对应插件驱动,即可使用 Jdbc 操作数据库
使用流程
SpringBoot
的自动装配也由类似SPI机制Dubbo
,其实现分层,初顶部两层外各层均插件化,仅定义规范,具体实现交由 SPI 加载,但此机制并非 JDK 自带,框架内部增强Springboot
,