爲什麼要設計adaptive?註解在類上和註解在方法上的區別?
adaptive設計的目的是爲了識別固定已知類和擴展未知類。
1.註解在類上:代表人工實現,實現一個裝飾類(設計模式中的裝飾模式),它主要作用於固定已知類,
目前整個系統只有2個,AdaptiveCompiler、AdaptiveExtensionFactory。
a.爲什麼AdaptiveCompiler這個類是固定已知的?因爲整個框架僅支持Javassist和JdkCompiler。
b.爲什麼AdaptiveExtensionFactory這個類是固定已知的?因爲整個框架僅支持2個objFactory,一個是spi,另一個是spring
2.註解在方法上:代表自動生成和編譯一個動態的Adpative類,它主要是用於SPI,因爲spi的類是不固定、未知的擴展類,所以設計了動態$Adaptive類.
例如 Protocol的spi類有 injvm dubbo registry filter listener等等 很多擴展未知類,
它設計了Protocol$Adaptive的類,通過ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(spi類);來提取對象
dubbo 中adaptive註解說明
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
使用dubbo+zookeeper創建一個小應用
polo_longsan
2018-08-27 19:46:16
Dubbo服務只訂閱和只註冊
周周_ZHANG
2018-08-27 19:23:06
Dubbo服務接口的設計原則
周周_ZHANG
2018-08-27 19:23:06
Dubbo服務集羣容錯配置
周周_ZHANG
2018-08-27 19:23:06
Dubbo服務啓動依賴檢查
周周_ZHANG
2018-08-27 19:23:05
Dubbo直連提供者
周周_ZHANG
2018-08-27 19:23:05
Spring+Dubbo+Zookeeper框架搭建–<三>服務註冊示例
auleit
2018-08-27 19:17:02
Spring+Dubbo+Zookeeper框架搭建--<一>Zookeeper安裝
auleit
2018-08-27 19:17:01
linux下zookeeper環境搭建以及dubbo-admin的編譯與部署
俺叫赵小邪
2018-08-27 18:24:27
普通項目改造成Dubbo項目
闪电猪猪侠
2018-08-27 18:20:18
zookeeper註冊中心安裝
闪电猪猪侠
2018-08-27 18:20:14
Linux下的ZooKeeper安裝(單機環境和集羣以及啓動時出現的異常)
banana味儿的香蕉
2018-08-27 05:07:46
Dubbo源碼分析(四)Handler & Filter
jason07409
2018-08-27 02:12:59
Dubbo源碼分析(一)啓動Provider
jason07409
2018-08-27 02:12:54