京东科技开发者

京东科技开发者 -

SPI扩展点在业务中的使用及原理分析 | 京东物流技术团队

SPI 全称Service Provider Interface。面向接口编程中,我们会根据不同的业务抽象出不同的接口,然后根据不同的业务实现建立不同规则的类,因此一个接口会实现多个实现类,在具体调用过程中,指定对应的实现类,当业务发生变化时会导致新增一个新的实现类,亦或是导致已经存在的类过时,就需要对调用的代码进行变更,具有一定的侵入性。

SPI是Service Provider Interface的缩写,是一种基于接口的编程和策略模式的动态加载机制。在京喜业务中,通过SPI扩展点的方式实现仓储中台和京喜BP的合作。SPI提供了两种方式的接口实现:jar包方式和jsf接口方式。jar包方式需要在调用方提供的jar中定义接口和实现类,而jsf接口方式通过配置jsf接口的别名来识别扩展点。SPI的好处是实现扩展无需改动源码,几乎没有侵入性,只需要添加配置即可实现扩展。

相关推荐 去reddit讨论

热榜 Top10

LigaAI
LigaAI
eolink
eolink
Dify.AI
Dify.AI
观测云
观测云

推荐或自荐