SPI机制简介
SPI(Service Provider Interface),是从JDK6开始引入的,一种基于ClassLoader来发现并加载服务的机制。
一个标准的SPI,由3个组件构成,分别是:
- Service:是一个公开的接口或者抽象类,定义了一个抽象的功能模块;
- Service Provider:是Service接口的实现子类;
- ServiceLoader:是SPI机制的核心组件,负责在运行时发现并加载Service Provider。
SPI运行流程
SPI运行流程如下图所示,
ServiceLoader类
ServiceLoader是SPI机制的核心组件,负责在运行时发现并加载Service Provider。该类提供了load方法