有道无术,术尚可求,有术无道,止于术。
本系列Spring Boot版本3.1.0
源码地址:https://gitee.com/pearl-organization/study-spring-boot3
文章目录
1. 概述
SPI
全称为Service Provider Interface
,是一种服务发现机制,像Spring
、Dubbo
、JDBC
、Nacos
等等都用到了SPI
。
在一个软件中往往有很多模块,模块之间进行交互时,一般都是面向接口编程。如果直接调用实现类,耦合度太高,一旦想替换另一种实现,就需要修改代码。而SPI
提供了一种为接口寻找服务实现的机制,我们直接调用接口进行编码,具体实现由SPI
去动态加载。
比如JDBC
中,驱动类由各个数据库厂商去实现,程序在加载时,使用SPI
动态加载引入的驱动实现。