Java SPI机制与ServiceLoader支持
发布时间
阅读量:
阅读量
1、SPI是什么
SPI的完整名称为Service Provider Interface(服务提供接口),这是一种专为第三方开发人员设计的API,旨在实现或扩展特定功能,能够有效支持框架的扩展性以及组件的替换操作,同时具备根据具体接口定位相应服务类的功能。
该机制的整体运作流程如下:

(图片来源:https://www.jianshu.com/p/46b42f7f593c)
Java SPI 实际上是一种融合了接口编程、策略模式以及配置文件机制的动态加载方式。
Java SPI的实现要素:
- 首先需要明确服务与接口的具体名称;
- 当各个服务提供者完成对接口的实现后,应在对应的jar包中的META-INF/services目录内,建立一个以“接口全限定名”作为文件名的文本文件,其中内容应为该实现类的完整限定名称;
- 包含接口实现类的jar包需被放置于主程序的classpath路径之中;
- 在服务调用方使用该接口时,需引入提供者的jar包,并借助
java.util.ServiceLoader工具类动态加载提供者的模块。
全部评论 (0)
还没有任何评论哟~
