SPI全称(Service Provider Interface),是JDK内置的一种服务提供发现机制;SPI机制提供了组件发现和注册方式,可以为应用程序提供灵活的插件机制, 主要原理:接口 + 反射+ 配置文件。
定义接口,并为接口提供具体的实现类,实现模块之间的解耦;具体规则如下:
注意:也可以使用@AutoService(xxx.class)注解,无需手动创建目录文件,会在maven打包时自动创建相应的文件,maven依赖如下:
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service-annotations</artifactId>
<version>1.0.1</version>
</dependency>
新建三个模块
(1)模块:java-spi-application 对应应用程序
pom.xml
(2)模块:java-spi-interface对应spi接口定义