> For the complete documentation index, see [llms.txt](https://jun-wang.gitbook.io/learnjava/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jun-wang.gitbook.io/learnjava/ji-shu-xue-xi/java-xue-xi/java-tuo-zhan-xue-xi/javaspi.md).

# JavaSPI

## 简介

SPI，全称Service Provider Interface，服务提供接口，是一种服务发现机制，它通过在ClassPath路径下的META-INF/services文件夹查找文件，自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能，比如在Dubbo、JDBC中都使用到了SPI机制。

SPI机制主要的作用是为了实现框架拓展和组件替换，

> 参考：
>
> 深入理解SPI机制：<https://www.jianshu.com/p/3a3edbcd8f24>
