什么是 SPI,它有什么用?

发布时间:2023年12月30日

什么是 SPI,它有什么用?

??SPI 全称是 Service Provider Interface ,它是 JDK 内置的一种动态扩展点的实现。
简单来说,就是我们可以定义一个标准的接口,然后第三方的库里面可以实现这个接口。
那么,程序在运行的时候,会根据配置信息动态加载第三方实现的类,从而完成功能的动态扩展机制。
在这里插入图片描述
??在 Java 里面, SPI 机制有一个非常典型的实现案例, 就是数据库驱动 java.jdbc.Driver
??JDK 里面定义了数据库驱动类 Driver,它是一个接口,JDK 并没有提供实现。具体的实现是由第三方数据库厂商来完成的。
??在程序运行的时候,会根据我们声明的驱动类型,来动态加载对应的扩展实现, 从而完成数据库的连接。

在这里插入图片描述
??除此之外,在很多开源框架里面都借鉴了 Java SPI 的思想,提供了自己的 SPI
框架,
??比如:
??Dubbo 定义了 ExtensionLoader,实现功能的扩展。
??Spring 提供了 SpringFactoriesLoader,实现外部功能的集成。以上就是我对这个问题的理解!

文章来源:https://blog.csdn.net/weixin_44797327/article/details/135303476
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。