JAVA 之 SPI机制

本文介绍了JAVA的SPI(Service Provider Interface)机制,其目的是为了实现服务提供者和消费者之间的解耦。文章详细讲解了SPI的使用规范,包括定义服务接口、创建实现类、配置服务实现的META-INF/services文件,并通过ServiceLoader加载实现类。还提供了DEMO步骤,从创建接口到配置文件再到测试,帮助读者深入理解并实践SPI。
摘要由CSDN通过智能技术生成

目录

什么是SPI机制

JAVA-SPI使用规范

ServiceLoader

DEMO


什么是SPI机制

SPI 是 Service Provider Interface 的缩写,直译过来就是服务提供者接口。

目的是为了在系统里多个服务提供者模块可以提供一个服务的实现, 系统让客户端可以使用这些实现, 从而实现解耦。

其实简单的来说就是

JAVA-SPI使用规范

  1. 定义服务的通用接口,针对通用的服务接口,提供具体的实现类。
  2. 在jar包的META-INF/services/目录中,新建一个文件,文件名为 接口的"全限定名"。 文件内容为该接口的具体实现类的"全限定名"。
  3. 将spi所在jar放在主程序的classpath中
  4. 服务调用方用java.util.ServiceLoader,用服务接口为参数,去动态加载具体的实现类到JVM中。


DEMO

1. 新建一个项目,定义好接口

package com.xx;

public interface Car {
    void driver();
}

2. 实现这个接口

package com.xx;

/**
 * @program: spi
 * @description:
 * @author: Pontus
 * @create: 2021-04-16 14:30
 **/
public class BenzCar i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值