Java SPI原理和实现

概念和术语

SPI:Service Provider Interface

SPI从Java 6开始引入,是一种基于ClassLoader来发现并加载服务的机制。

一个标准的SPI由3个组件构成,分别是:

  • Service : 一个公开的接口或者是抽象类,定义了一个抽象的功能模块。
  • Service Provider :Service接口的一个实现类。
  • ServiceLoader :SPI机制中的核心组件,负责在运行时发现并加载Service Provider。

运行流程

image-20241110205425506

Application应用程序不关注Service的具体实现,只需要和Service接口交互。

案例:以JDBC为例

JDBC,全称是Java DataBase Connectivity

  • JDBC即使用Java语言来访问数据库的一套API
  • 每个数据库厂商会提供各自的JDBC实现

image-20241110210328236

处理流程:

20611a93994f9b357fc4b82e9043d29

7ab2c92b2424825ea24a3754081ac53

updatedupdated2024-11-102024-11-10