1、Dubbo实现SPI之 JDK介绍

Dubbo  SPI的思想 --->!大家是否熟悉spi(service providerinterface)机制,即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下),

    jdk通过ServiceLoader类实现spi机制的服务查找功能。

我们来看下jdk是如何实现:        JDK实现SPI服务查找: ServiceLoader。

package com.test;

public interface SPI {

       String sayHello();

}

ServiceLoader会遍历所有jar查找META-INF/services/com.test.SPI文件

然后是各个厂商去提供实现

 

package com.test.testA;

public class SPITestA implements SPI {

    

   public String syaHello() {

         return “hello---->testA”;

   }

}

 

在testA厂商提供的jar包中的META-INF/services/com.test.SPI文件内容为:

com.test.testA.SPITestA #厂商A的spi实现全路径类名

 

其他厂商类似。

jdk  ServiceLoader.load(Spi.class)读取testA、等提供jar包中的文件,ServiceLoader实现了Iterable接口可通过while for循环语句遍历出所有实现。

一个接口多种实现,就如策略模式一样提供了策略的实现,

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值