SPI机制 Demo
SPI(service provider interface),比如你有个接口,有多个实现类,那么在系统运行的时候,到底会选择哪一个实现类呢?所以这个时候就需要SPI,需要根据指定的配置或者默认的配置来加载对应的实现类。SPI一般用在插件扩展场景比较多,你想别人自己写个插件,插到你的服务中来扩展自定的功能。如jdbc就是使用这个经典的思想。jdk和dubbo具体实现的机制有点小的区别,具体通过下面的demo,来讲解jdk spi 和dubbo spi基本用法。
JDK SPI
1、创建maven工程,结构如下图
2、在src/main/java中的java/spi包下创建一个接口和三个实现类,具体如下
package com.sylucky.java.spi;
/**
* 汽车接口
*/
public interface ICar {
void start();
void run();
}
package com.sylucky.java.spi;
public class AudiCar implements ICar {