是什麼使得我每天都要去學習,是貧窮,絕逼是貧窮,安逸的生活誰想著進步,都想著去享受生活,但是誰讓我們選擇的是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 為了避免超時導致客戶端資源 執行緒 因為介面呼叫時間過長而影響系統效能,需要配置必...