日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dubbo是如何“插入”到spring框架中的

發(fā)布時間:2025/3/11 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dubbo是如何“插入”到spring框架中的 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文鏈接:http://blog.csdn.net/achilles12345/article/details/41789527

----------------------------------------------------------------------------------------------

? 作為一個分布式服務(wù)治理框架,dubbo做的非常好,在業(yè)界使用很廣,所以最近研究了下這個框架。任何框架要研究其原理最好的辦法之一就是沿著其運行流程進行追蹤,這樣就能從上到下,從粗到細對一個系統(tǒng)進行了解。今天,我們要說明的問題就是dubbo如何啟動的。


? ? ? ? dubbo是基于Spring進行開發(fā)的,而且擴展了Spring的XML schema和注解標(biāo)簽,其實這里也就是整個dubbo的切入點。dubbo除去依賴其他的第三方框架外,整個框架只有一個jar包,可謂是精致。在這個jar包的NET-INF目錄下有兩個文件:spring.handlers和spring.schemas。其中spring.schemas中定義的就是擴展的spring配置標(biāo)簽,而且spring.handlers中定義的就是這些schema的處理類,就是這個類將dubbo組件“插入”到spring這個平臺里的。(關(guān)于如何自定義spring配置的schema,網(wǎng)上資料很多,這里只簡單概括)Spring在啟動的時候會掃描MET-INF下所有的spring.handlers等文件,找到其中的標(biāo)簽處理類,并運行其init方法。


? ? ? ? 這里要插個知識點“spring的啟動過程”。spring啟動過程,從宏觀角度來講分為兩個階段。第一個階段完成spring配置文件的解析,或者spring注解的解析最終將這些配置或者注解解析成BeanDefinition對象,然后進入下一個階段,比如我們經(jīng)常在spring配置文件中使用的占位符替換工作就是在這個階段完成的。在第二個階段中,spring用之前解析好的BeanDefinition對象來完成bean的初始化和組裝工作,比如我們使用spring事務(wù)時的事務(wù)proxy就是這個階段完成注入到service對象中的。


? 在這個init方法中,dubbo將自己的標(biāo)簽(application,module,registry,monitor,provider,consumer,protocol,service,reference)處理類注冊到spring中,而這些類會完成對自己所負責(zé)的標(biāo)簽的解析工作,將標(biāo)簽最終轉(zhuǎn)換為bean的描述對象BeanDefinition并返回給spring,而spring拿到這些標(biāo)簽對象完成bean的初始化、依賴注入(比如注入對RMI端的proxy對象)。


這就是dubbo的宏觀啟動流程,這個對于理解dubbo框架的原理能起到促進作用,網(wǎng)上也沒有明確的文章進行說明,這里做個補充。希望能幫大家解決一些問題。




總結(jié)

以上是生活随笔為你收集整理的dubbo是如何“插入”到spring框架中的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。