Dubbo學習系列(一)配置的初始化操作

2021-08-19 23:33:28 字數 2276 閱讀 7207

是什麼使得我每天都要去學習,是貧窮,絕逼是貧窮,安逸的生活誰想著進步,都想著去享受生活,但是誰讓我們選擇的是it行業呢,這個在外面人看來拿著不菲薪水的人群,但是他們哪知道時時刻刻都要學習啊。。。

spring自定義標籤的解析

2.我們專案中的使用方式是基於配置的方式,如下:

當spring載入到這個配置檔案時,就會去載入dubbo,它是怎麼去做解析的呢?

3.解析工作交給了自定義的類,定義在spring.handles內。當使用到名為dubbo的引用時,就通過dubbonamespacehandler去做解析工作。

4.dubbonamespacehandler原始碼欣賞,可以看見比較熟悉的如service,provider等等標籤

/**

* dubbonamespacehandler

* * @author william.liangf

* @export

*/public class dubbonamespacehandler extends namespacehandlersupport

public void init()

}

1.此類的功能:做dubbo檔案的標籤解析。也就是將xml檔案內的標籤資料解析成spring的bean。

2.通過實現的dubbobeandefinitionparser類,通過傳入不同的引數實現不同的標籤解析。

5.具體解析工作原始碼欣賞dubbobeandefinitionparser

private static beandefinition parse(element element, parsercontext parsercontext, class> beanclass, boolean required)  else 

}if (generatedbeanname == null || generatedbeanname.length() == 0)

id = generatedbeanname;

int counter = 2;

while(parsercontext.getregistry().containsbeandefinition(id))

}if (id != null && id.length() > 0)

parsercontext.getregistry().registerbeandefinition(id, beandefinition);

beandefinition.getpropertyvalues().addpropertyvalue("id", id);

}//協議配置類

if (protocolconfig.class.equals(beanclass)) }}

//如果是暴露服務配置類

} else if (servicebean.class.equals(beanclass))

//*如果是服務提供者配置類*/

} else if (providerconfig.class.equals(beanclass)) else if (consumerconfig.class.equals(beanclass))

setprops = new hashset();

managedmap parameters = null;

for (method setter : beanclass.getmethods())

//得到最終的一些節點資料

namednodemap attributes = element.getattributes();

int len = attributes.getlength();

for (int i = 0; i < len; i++)

string value = node.getnodevalue();

parameters.put(name, new typedstringvalue(value, string.class));}}

if (parameters != null)

return beandefinition;

}

看下乙個具體的標籤解析吧。

Dubbo學習系列 初識

dubbo能解決什麼問題 怎麼去維護url 通過註冊中心去維護url zookeeper redis memcache f5硬體負載均衡器的單點壓力比較大 軟負載均衡。自動去整理各個服務之間的依賴。如果伺服器的呼叫量越來越大,伺服器的容量問題怎麼去評估,擴容的指標 需要乙個監控平台,可以監控呼叫量 ...

Dubbo系列之常用配置用法簡介

dubbo系列之常用配置用法簡介 配置原則,引用官方的 介面呼叫失敗,可通過 retries屬性 來設定重試次數 注意 不含第一次 dubbo service retries 2 或者 server retries 2 dubbo reference retries 2 或者 reference r...

Dubbo系列之常用配置用法簡介

dubbo系列之常用配置用法簡介 配置原則,引用官方的 介面呼叫失敗,可通過 retries屬性 來設定重試次數 注意 不含第一次 或者 server retries 2 或者 reference retries 2 為了避免超時導致客戶端資源 執行緒 因為介面呼叫時間過長而影響系統效能,需要配置必...