前言:
SPI(Service Provider Interface),是JDK内置的一种服务提供发现机制,Java中 SPI 机制主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是解耦
1、大家都知道API,却不太了解SPI
2、API是开发人员设定好的接口和实现功能供别人调用
3、SPI是制定接口规范,供其他服务提供模块来按照此接口自定义实现业务的权力
一、Java标准 SPI 的构成三大组件
1、Service 是一个公开的接口或抽象类,定义了一个抽象的功能方法函数
2、Service Provider:是 Service 接口的一个实现类
3、ServiceLoader:SPI机制中的核心组件,负责运行时发现并加载 Service Provider
二、Java SPI 的三大要素
1、文件位置路径:必须在JAR包(项目模块)中 /resources/META-INF/services/ 目录下
2、文件名称:Service接口或抽象类的全限定名
3、文件内容:Service接口或抽象类的实现类的全限定名。如果有多个实现类,那么每