浅谈SPI扩展机制

本文探讨了SPI(Service Provider Interface)扩展机制,详细介绍了JDK、Spring和Dubbo中的实现方式。JDK的SPI通过`ServiceLoader`加载实现类,Spring类似但用于自动配置,Dubbo的SPI增加了依赖注入步骤。SPI作为一种框架扩展手段,允许开发者方便地插入自己的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

背景

1、jdk的spi

2、Spring的spi

2、Dubbo的spi

思考


 

背景

    近来看Hasor、Dubbo等框架都说到微内核(Microkernel),想想jdk、srping、dubbo、hasor等都谈SPI,决定随笔记录下各个框架的spi,文章主要谈jdk、spring、dubbo的spi机制,出于目前的水平看来,spi就是一种偷懒方式,框架内都是针对接口编程,而实现自己可做可不做,谁做的好可以插进来就用就完了。

1、jdk的spi

   jdk的spi先说说java.util.ServiceLoader这个类吧,先看看咋用的尝试下spi,

//定义服务提供接口
public interface JdkProvider {
    int calculate(int x,int y);
}
//第一个服务
public class JdkFirstProvider implements JdkProvider {
    public int calculate(int x, int y) {
        System.out.println("JdkFirstProvider给出 2(x+y)");
        return 2*(x+y);
    }
}
//第二个服务
public class JdkSecondProvider implements JdkProvider {
    public int calculate(int x, int y) {
        System.out.println("JdkSecondProvider给出 x+y");
        return x + y;
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&一步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值