面试大咖说:Dubbo SPI 和 Java SPI 区别

本文探讨了JDK SPI一次性加载所有扩展实现可能导致的资源浪费问题,并介绍了Dubbo SPI的优势,如延迟加载、扩展点的IOC和AOP支持以及与Spring Bean的兼容性。

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

JDK SPI

JDK 标准的 SPI 会一次性加载所有的扩展实现,如果有的扩展吃实话很耗时,但也没用 上, 很浪费资源。 所以只希望加载某个的实现, 就不现实了

ServiceLoader<ISayHello> serviceLoader=ServiceLoader.load(ISayHello.class);
        System.out.println("Java SPI");
        serviceLoader.forEach(ISayHello::say);

DUBBO SPI

1、对 Dubbo 进行扩展, 不需要改动 Dubbo 的源码

2、 延迟加载, 可以一次只加载自己想要加载的扩展实现。

3、 增加了对扩展点 IOC 和 AOP 的支持, 一个扩展点可以直接 setter 注入其它扩展 点。

4, Dubbo 的扩展机制能很好的支持第三方 IoC 容器, 默认支持 Spring Bean

 

 

public class test3 {

    public static void main(String[] args) {
        ExtensionLoader<ISayHello> extensionLoader =
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

石头城程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值