SPI扩展机制概述
SPI 概述
- SPI 全称为 Service Provider Interface,是一种服务发现机制
- 用来给第三方实现或扩展的 API,它可以用于实现框架扩展或组件替换
- SPI 机制本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载文件中的实现类,这样运行时可以动态的为接口替换实现类
使用要求
- 在
META-INF/services
下面定义个文件,然后通过一个特殊的类加载器,启动的时候加载你定义文件中的类
为什么要有 SPI
- 引入了 SPI 机制后,服务接口与服务实现就会达成分离的状态,可以实现解耦以及程序可扩展机制
- 服务提供者(比如 springboot starter)提供出 SPI 接口后,(shardingspere)
- 客户端(平常的 springboot 项目)就可以通过本地注册的形式,将实现类注册到服务端,轻松实现可插拔