Dubbo源碼分析之XML的Bean解析

來源:互聯網
上載者:User

標籤:element   com   ini   ebean   介紹   檔案   hand   源碼分析   alt   

      本地暴露的代碼是基於 .2.7.0

   前面介紹了dubbo的擴充機制 ,接下來,看下Dubbo是如何載入xml中的bean。

     我門可以看到Dubbo的通常是這樣子配置的,這個XMl的xsd是dubbo自己定義的。從源碼裡可以看到有個名字叫dubbo.xsd的檔案, ,解析xml的是要在Resources目錄下,建立兩個檔案,名字是spring.schemas和springHandlers,  至於為什麼是這兩個名字,是Spring的SPI擴充機制規定,相信經過前面的DUbbo的SPI機制的瞭解,對於這個xml的SPI也會更加清楚,它裡面肯定是代碼裡寫死了,載入規定的檔案名稱去擴充。

        配置了這個後,Spring會自動設定的Handler類去對應的xml檔案,那麼接下來可以看出DubboNamespaceHandler類就是解析xml的。

        可以看到, dubbo要註冊這個多bean的解析類,前面elementName的名字就是對應xml標籤的名字. 接下來看下dubbo是如果解析的。

  首先,解析類是要繼承BeanDefinitionParser類, 這裡主要是會調用parse方法去解析xml

  

           Spring中Bean的註冊,都是通過BeanDefiniton來註冊到一個Map中去。

  這個可以看出 <dubbo:service 中ref標籤,是往BeanDefinition中去加一個屬性的,value值是一個RuntimeBeanReference的對象,裡麵包裝的實現ref的實作類別。 

 總結:

        今天主要是對dubbo解析自訂標籤的流程,做了一個大致的分析。希望可以堅持寫下去。

 

Dubbo源碼分析之XML的Bean解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.