jdk通過serviceloader類實現spi機制的服務查詢功能。
我們來看下jdk是如何實現: jdk實現spi服務查詢: serviceloader。
package com.test;
public inte***ce 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迴圈語句遍歷出所有實現。
乙個介面多種實現,就如策略模式一樣提供了策略的實現,
1 dubbo配置標籤的解析
本原始碼版本為2.6.7 比如有以下配置 dubbo提供的標籤解析的命名空間為dubbobeandefinitionparser override public void init 解析方法 public beandefinition com.alibaba.dubbo.config.spring....
Dubbo核心實現之SPI簡單
dubbo採用 jdk實現spi服務查詢 serviceloader 首先定義下示例介面 package com.example public inte ce spi booleanissupport string name string sayhello serviceloader會遍歷所有jar...
Dubbo核心實現之SPI簡單介紹
這個部分單獨寫一頁,看起來更高大上一些。1.概括 dubbo採用微核心 外掛程式體系,使得設計優雅,擴充套件性強。那所謂的微核心 外掛程式體系是如何實現的呢!jdk實現spi服務查詢 serviceloader 2.定義示例介面 serviceloader會遍歷所有jar查詢meta inf ser...