Java SPI的简单使用

本文介绍了Java SPI(Service Provider Interface)的基本使用,包括定义接口、编写实现类、配置实现类路径以及通过`java.util.ServiceLoader`加载实现。通过示例展示了SPI如何实现策略模式,允许在运行时动态加载不同实现。
摘要由CSDN通过智能技术生成

SPI的全称是Service Provider Interface,起初数提供给厂商做插件开发的。关于Java SPI的详细定义和说明,可查看官网说明。

Java SPI使用了策略模式,一个接口多种实现。其只定义接口,具体的实现并不在程序中直接确定,而是由程序之外的配置掌控,用于具体实现的装配。具体的步骤如下:

  1. 定义一个接口以及对应的方法。
  2. 编写该接口的一个实现类。
  3. 在META-INF/services/目录下,创建一个以接口全路径命名的文件。
  4. 在步骤三创建的文件中填写具体实现类的全路径类名,如果多个,则用分行符分隔。
  5. 在代码中通过java.util.ServiceLoader来加载具体的实现类。

示例代码目录结构如下:

com.jackson.dubbo.spi.PrintService代码如下:

package com.jackson.dubbo.spi;

public interface PrintService {

    void printInfo();
}

com.jackson.dubbo.spi.PrintServiceImpl代码如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值