https://www.jianshu.com/p/0d196ad23915
https://blog.csdn.net/qq_39662660/article/details/88781296
为什么要自定义 SPI ?
在实际应用中,无论是 Java SPI 或是 Spring SPI,都无法服务与工程已有 Spring 容器进行整合。
举个栗子:订单 OrderService 的 Implement 是通过 SPI 方式创建的,可如果 OrderService 实现类中调用了 Spring 容器管理的商品 WareService,则会出现 null 异常,因为 OrderService 实现类的生命周期并没有交给 Spring 容器管理。
基于此,我们可以自己实现一套逻辑,主要包括两点:
1、加载 META-INF 目录下的 spi 接口文件
2、将实例化的 Bean 注册到 Spring 的容器中
来源:oschina
链接:https://my.oschina.net/u/3847203/blog/3163580