Spring 3 x 資源的解析

2021-09-19 23:48:02 字數 1439 閱讀 3494

在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...