通過註解來註冊dubbo服務的時候,在服務端和消費端都需要用到乙個元件dubbocomponentscanregistrar,先看下registerbeandefinitions()方法:
dubbocomponentscanregistrar#registerserviceannotationbeanpostprocessorpublic
void
registerbeandefinitions
(annotationmetadata importingclassmetadata, beandefinitionregistry registry)
我們來看下 serviceannotationbeanpostprocessor的繼承關係:private
void
registerserviceannotationbeanpostprocessor
(set
packagestoscan, beandefinitionregistry registry)
我們就來看下dubboclasspathbeandefinitionscanner#doscanprivate
void
registerservicebeans
(set
packagestoscan, beandefinitionregistry registry)
if(logger.
isinfoenabled()
) were scanned under package["
+ packagetoscan +
"]");}
}else}}
}
serviceannotationbeanpostprocessor#buildservicebeandefinition()方法中有個beandefinitionbuilder builder = rootbeandefinition(servicebean.class);進去看下:public set
doscan
(string.
.. basepackages)
public
static beandefinitionbuilder rootbeandefinition
(class<
?> beanclass, string factorymethodname)
public
void
(contextrefreshedevent event)
// 暴露服務
export();}}
soul原始碼閱讀(三) 啟動dubbo服務
工作台列印出一下日誌,說明duboo服務被註冊到soul admin中 2021 01 16 14 55 38.781 info 19172 pool 1 thread 1 o.d.s.client.common.utils.registerutils dubbo client register s...
《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具
檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...
讀dubbo原始碼筆記(三)
現在看 核心的 serviceconfig url 在服務提供者暴露乙個服務的詳細過程 講解的很清楚 服務提供者暴露乙個服務 這些 基本上都是在 serviceconfig 完成 過程是 export doexport doexporturls export 方法 主要是 解決立即doexport還...