插件 - 通过SPI方式实现插件管理 中我们提到了缺点
- 无法保证唯一实现:在SPI机制中,同一个服务接口可能会有多个提供者实现,而无法明确指定使用哪一个。
- 依赖于配置文件:配置文件是发现和加载提供者的关键,如果配置文件缺失或错误,将导致无法加载提供者。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6914833b287ed9980c6104a74bd65d81.gif)
那能改进下吗 ? 来继续分解分解
优化方案
步骤:
- A应用定义通用接口,用于定义插件B\C\D需要实现的功能
- B,C,D等插件应用各自实现该接口
- A应用通过直接引入B/C/D插件应用的依赖(按需)
- A应用在运行时动态加载不同的实现类,完成各自的功能扩展
流程图