上面是ioc
和di
的通俗理解,我們也可以用我們現有的知識來思考這兩點的實現,其實兩者主要還是依賴與反射機制來實現這些功能,那麼我們為了提出一些關鍵問題,來跟著關鍵問題來看下具體的流程。
在spring
中beanfactory
是頂層的容器介面,我們可以看出來其實spring
中容器的本質就是工廠, 他有非常多的實現類,我們這裡把主要的核心類圖展示:
public inte***ce beanfactory
beandefinition 是spring中對物件關係,物件建立等一系列的定義模型,其本質其實是乙個map集合,其類圖我們可以看一下:
在我們建立初始化容器時,也就是bean工廠時,會根據這個工廠建立相應的 beandefinitionreader 物件,這個reader物件是乙個資源解析器,這個解析的過程是複雜的在我們後邊的解析中會具體來看各自的實現
所屬包org.springframework.core.io.resourceloader
,這是spring用來進行統一資源載入的頂級介面,裡面定義行為,實現讓具體的子類實現,類圖我們可以看一下
resourceloader
的核心實現, 在spring
中容器也有實現該介面,關於統一資源載入的運轉後期會專門說明
所屬包org.springframework.core.io.resource
, 該類是spring
中資源載入的策略實現頂層介面,該類的每個實現類都是對某一種資源的訪問策略,類圖:
我們在springmvc中很熟悉乙個核心控制器dispatcherservlet
, 這個類做了乙個集中分發和web
容器初始的功能,首先我們來看一下類圖
重新認識container
我還清楚的記得,第一次從 那兒聽說container這個詞 結果他給我解釋了半天還是似懂非懂的。今天,偷閒翻了下posa4,發現裡面對container的解釋特別清楚。粗略的理解下來是,為了分離關注點,而實現的對系統資源的封裝。豁然開朗的發現,os就是應用程式的container。突發奇想的,開發乙...
重新認識測試
以前總覺得測試是軟體開發的邊緣職位,開發人員才是軟體生命週期的核心人員。隨著對網際網路公司的了解,逐步了解到測試的重要性。以bat為例,三家公司均設定了測試開發工程師崗位,該崗位的主要職責就是編寫自動化測試案例,通過對 的邏輯進行分析,設計出能夠覆蓋大部分 的測試用例。如阿里的測試開發工程師的崗位描...
重新認識ARC
雖然用了很久的arc,感受了 簡潔。但是對arc底層實現並不了解。今天抽空研究了下,做些簡單地總結。一 strong 1.區域性變數 對於區域性變數來說,在超出作用域的地方由編譯器自動插入release。大概轉化為 在非arc返回的autorelease型別的方法 在blog手碼大概 如有錯誤還望指...