如何做自己的影视网站,视频课程网站建设,扬中论坛网官网,商家网站建设Java面试题SPI 文章目录 Java面试题SPISPI何谓 SPI?SPI 和 API 有什么区别#xff1f;SPI 的优缺点#xff1f; 文章来自Java Guide 用于学习如有侵权#xff0c;立即删除 SPI
关于 SPI 的详细解读#xff0c;请看这篇文章 Java SPI 机制详解 。
何谓 SPI?
SPI 即 Ser…Java面试题SPI 文章目录 Java面试题SPISPI何谓 SPI?SPI 和 API 有什么区别SPI 的优缺点 文章来自Java Guide 用于学习如有侵权立即删除 SPI
关于 SPI 的详细解读请看这篇文章 Java SPI 机制详解 。
何谓 SPI?
SPI 即 Service Provider Interface 字面意思就是“服务提供者的接口”我的理解是专门提供给服务提供者或者扩展框架功能的开发者去使用的一个接口。
SPI 将服务接口和具体的服务实现分离开来将服务调用方和服务实现者解耦能够提升程序的扩展性、可维护性。修改或者替换服务实现并不需要修改调用方。
很多框架都使用了 Java 的 SPI 机制比如Spring 框架、数据库加载驱动、日志接口、以及 Dubbo 的扩展实现等等。 SPI 和 API 有什么区别
那 SPI 和 API 有啥区别
说到 SPI 就不得不说一下 API 了从广义上来说它们都属于接口而且很容易混淆。下面先用一张图说明一下 一般模块之间都是通过接口进行通讯那我们在服务调用方和服务实现方也称服务提供者之间引入一个“接口”。
当实现方提供了接口和实现我们可以通过调用实现方的接口从而拥有实现方给我们提供的能力这就是 API 这种接口和实现都是放在实现方的。
当接口存在于调用方这边时就是 SPI 由接口调用方确定接口规则然后由不同的厂商去根据这个规则对这个接口进行实现从而提供服务。
举个通俗易懂的例子公司 H 是一家科技公司新设计了一款芯片然后现在需要量产了而市面上有好几家芯片制造业公司这个时候只要 H 公司指定好了这芯片生产的标准定义好了接口标准那么这些合作的芯片公司服务提供者就按照标准交付自家特色的芯片提供不同方案的实现但是给出来的结果是一样的。
SPI 的优缺点
通过 SPI 机制能够大大地提高接口设计的灵活性但是 SPI 机制也存在一些缺点比如
需要遍历加载所有的实现类不能做到按需加载这样效率还是相对较低的。当多个 ServiceLoader 同时 load 时会有并发问题。 大家好我是xwhking一名技术爱好者目前正在全力学习 Java前端也会一点如果你有任何疑问请你评论或者可以加我QQ2837468248说明来意希望能够与你共同进步