Bootstrap

java6新特性----SPI机制

Java SPI

SPI: 全称是**Service Provider Interface**

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

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

  • Service

    Service,是一个公开的接口或抽象类,定义了一个抽象的功能模块

  • Service Provider

    Service Provider,则是Service接口的一个实现类。

  • Service Loader

    ServiceLoader, 是SPI机制中的核心组件,负责在运行时发现并加载 Service Provider。

image-20220906233959970

jdk中ServiceLoader 调用load方法加载jar包中的 Service Provider

SPI相关问题

它的作用,解决了什么问题

如何实现一个spi引用

背后的设计思想,得到的启示

JDBC中的SPI演变,引出三大要素

image-20220906234535155

image-20220906234559149

image-20220906234613013

image-20220906234632386

SPI的三大要素

image-20220906235241326

image-20220906234655867

image-20220906234943891

image-20220906235002238

image-20220906235031221

image-20220906235041670

image-20220906235206464

image-20220906235319414

策略 + 工厂 + 配置文件

如何实现

image-20220906235422386

image-20220906235446437

image-20220906235519024

image-20220906235556141

image-20220906235729869

image-20220906235759363

image-20220906235806648

image-20220907000018459

image-20220907000027022

image-20220907000042736

springboot中的spi思想扩展

image-20220907000401934

image-20220907000354322

image-20220907000511141

image-20220907000537775

image-20220907000713121

;