一、前言
在Duboo剖析-整体架构分析中介绍了dubbo中除了Service 和 Config 层为 API外,其他各层均为SPI,为SPI意味着下面各层都是组件化可以被替换的,这也是dubbo比较好的一点。
二、JDK中标准SPI
JDK 中的 SPI(Service Provider Interface)是面向接口编程的,服务规则提供者会在 JRE 的核心 API 里面提供服务访问接口,而具体实现则由其他开发商提供。
JDBC 4 是基于 SPI 机制来发现驱动提供商提供的实现类,提供者只需在 JDBC 驱动实现的Jar 的 META-INF/services/java.sql.Driver 文件里指定实现类的方式暴露驱动提供者。例如规范制定者在rt.jar包里面定义了 数据库 的驱动接口 java.sql.Driver。 MySQL 实现的 Jar,如下:
public class com.mysql.jdbc.Driver extends com