java中对SPI的理解

SPI(ServiceProviderInterface)是Java提供的一种服务发现机制,允许程序在运行时动态加载服务实现。通过服务接口、实现类、配置文件和服务加载器四部分协同工作,实现解耦和动态扩展。服务接口定义了契约,实现类提供具体服务,配置文件指定实现类,ServiceLoader则负责加载服务。Java SPI使得在不修改代码的情况下,能够灵活地替换或添加服务实现。
摘要由CSDN通过智能技术生成

什么是 SPI
SPI 全称是 Service Provider Interface,是一种将服务接口与服务实现分离以达到解耦、可以提升程序可扩展性的机制。引入服务提供者就是引入了 SPI 接口的实现者,通过本地的注册发现获取到具体的实现类,可以在运行时,动态为接口替换实现类,实现服务的热插拔。

Java SPI
Java SPI 中有四个重要的组件:

服务接口:一个定义了服务提供者实现类契约方法的接口或者抽象类。
服务实现:实际提供服务的实现类。
SPI 配置文件:文件名必须存在于 META-INF/services 目录中。文件名应与服务提供商接口完全限定名完全相同。文件中的每一行都有一个实现服务类详细信息,即服务提供者类的完全限定名。
ServiceLoader: Java SPI 关键类,用于加载服务提供者接口的服务。ServiceLoader 中有各种实用程序方法,用于获取特定的实现、迭代它们或再次重新加载服务。
 

通俗易懂就是可以动态的去调用接口的实现类。不需要我们自己去实例化实现类

参考:如何在项目中引入SPI_PP_HUANG的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值