在srping中容器的啟動,需要載入資源檔案配置的bean資訊。首先第一步就是解析資源檔案定義的bean資訊。在查閱原始碼之後,sring提供了兩種資源檔案解析。一種是通過xml,一種是通過屬性檔案(properties)。這兩種方式都有相應的提供類。
此筆記,在於分析spring 讀取資源檔案的整體架構,來更好的欣賞和閱讀原始碼。
2.xmlbeandefinitionreader(xml資源讀取)
由於大部分都是使用xml來定義srping容器,所有就著重的看了一下xml資源讀取。
xmlbeandefinitionreader作為beandefinitionreader具體實現。其功能就是當資源是xml可以使用這樣乙個讀取器來解析xml。
xmlbeandefinitionreader讀取xml資源,裡面又將讀取功能細分了很多小功能。
以下是小功能劃分:
1.documentloader:此介面用於讀取xml 並返回乙個document物件用於解析。
2.xmlvalidationmodedetector:這是乙個工具類,用於驗證xml型別。 xml有兩種定義格式(dtd,xsd)。
3.beandefinitiondocumentreader:此介面就是去讀取xml解析之後的document物件。
4.beandefinitionparserdelegate: 這是乙個工具類,解析xml中定義的bean資訊。
5.beandefinition: 該介面就是儲存xml中bean資訊的實體類。bean的所有主要屬性都在該介面體現。
在xmlbeandefinitionreader,也是沒有任何實現功能的**。其將所有功能都分派委託出去,最後再集中起來就形成了乙個整體的功能。
如果需要實現乙個功能,首先想想擴充套件性。其次再想想可讀性。如果可以想到這兩點,那麼這個功能十有**就會被拆分。
首先如果**短,肯定是好閱讀的。最起碼看起來不會頭昏腦脹。
再則,如果將功能分割成很多小功能,不僅可以讓小功能讓其他的功能呼叫,還可以替換。只需要繼承或者實現,然後覆蓋想要替換的方法。這樣當測試好替換的小功能,那麼所有的大功能也是一定ok的。
對於具體的功能實現,我並沒有著重去閱讀。因為功能的實現初學者都會,無非就是堆砌一些 if else 的**。
當某天心情好,或者真的需要了解的時候再閱讀不遲。著重的還是看看類和類之間的關係。
Spring3 x與4 x的區別
增加了 restcontroller annotation,就是把 controller和 reponsebody打包了,省得大家再去每個方法上加乙個 responsebody了。新加了asyncresttemplate類,可以用來構建非同步呼叫的restful client,具體用法看這兒 或者這...
Spring3 x和Hibernate4的整合問題
採用的是myeclipse整合的,一開始總是會報錯,org.springframework.orm.hibernate4.localsessionfactorybean這個類找不到,網上找了很多資料,但都沒有解決問題,無意間,看到乙個帖子 再看看工程目錄,好像的確沒有這個包 圈起來的是我以後加上去的...
筆者帶你剖析Spring3 x 集中貼
貌似已經很久沒有寫這個專題了,主要是近年來確實沒時間,且心思更多投入到寫書和專案中去了,只能後期補上。在此歸納下之前這個專題的目的,方便閱讀和查詢。詳解ssj spring3.x mvc spring3.x core jpa2.x 輕量級整合開發目錄彙總 詳解ssj spring3.x mvc sp...