【深入理解Dubbo原理】dubbo SPI 是怎麼實現的?

dubbo SPI 是怎麼實現的?

Dubbo SPI 的目的是爲了得到一個指定實現類的對象

Dubbo 並未使用 Java SPI ,而是重新設計了一套增強版的 SPI 。 Dubbo SPI 的相關邏輯封裝在了 ExtensionLoader 類中,通過 ExtensionLoader ,我們可以加載指定的實現類。Dubbo SPI 所需要的配置文件在 META-INF/dubbo 路徑下。

image

示例

現在 dubbo 路徑下,配置內容如下:

optimusPrime = org.apache.spi.OptimusPrime
bumblebee = org.apache.spi.Bumblebee

通過鍵值對的方式進行配置,配置完成之後會按照需要加載指定的實現類,另外,在測試 Dubbo SPI 時,需要在 Robot 接口上標註 @SPI 註解。

public class DubboSPITest {
    @Test
    public void sayHello() throws Exception {
        ExtensionLoader<Robot> extensionLoader = 
            ExtensionLoader.getExtensionLoader(Robot.class);
        Robot optimusPrime = extensionLoader.getExtension("optimusPrime");
        optimusPrime.sayHe
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章