SPI机制
SPI全称为(Service Provider Interface)服务提供接口
- SPI是在服务器加载根据指定的配置或默认的配置,找到对应的实现类进行加载。这样做可以动态更改接口实现类。
- 例如java定义类一套数据库链接,根据JDBC的配置,动态选择要加载的实现类、以及dubbo中Protocol、LoadBalance等都是通过SPI机制扩展。
流程
- 新建个可以打jar的工程
- 自定义一个接口
- 在src/main/resource目录下新建/MET-INF/xxx文件(xx为自定义名称)
- 在/MET-INF文件下新建一个文件(名称例如“DataBaserDriver”),该文件名必须要跟自定义接口全路径一致。
- 在新建的文件中写接口的实现全路径名,如果有多个则换行即可
- 打包jar
- 在别的服务当中引用该jar包
- 在别的服务当中使用ServiceLoader.load(DataBaserDriver.class)