概念和术语
SPI:Service Provider Interface
SPI从Java 6开始引入,是一种基于ClassLoader来发现并加载服务的机制。
一个标准的SPI由3个组件构成,分别是:
- Service : 一个公开的接口或者是抽象类,定义了一个抽象的功能模块。
- Service Provider :Service接口的一个实现类。
- ServiceLoader :SPI机制中的核心组件,负责在运行时发现并加载Service Provider。
运行流程
Application应用程序不关注Service的具体实现,只需要和Service接口交互。
案例:以JDBC为例
JDBC,全称是Java DataBase Connectivity
- JDBC即使用Java语言来访问数据库的一套API
- 每个数据库厂商会提供各自的JDBC实现
处理流程: