什么是 SPI,它有什么用?

文章目录

  • 什么是 SPI,它有什么用?

什么是 SPI,它有什么用?

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

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

你可能感兴趣的:(Java,java)