ioc(inverse of control )控制反轉,原本自身控制自身的權利轉移到了其他身上。ioc是一個“協定”,或者理論。需要涉及到代碼解耦,設計模式等一些問題考量。
其中包含了兩層内容:控制 + 反轉。意思明了
後來,ioc由于是種理論需要實戰 — 就出現了依賴注入。
di(dependency injection)依賴注入:即調用類讓某一接口的實作類的依賴關系有第三方(容器或者協作類)注入,以移除調用類對某一接口實作類的依賴。這裡就是将實戰的武功秘籍傳授了。實作類與類的依賴關系。
ioc容器還提供了bean執行個體緩存、生命周期管理、bean執行個體代理、事件釋出、資源裝載等進階服務。
依賴注入有三種注入方式:
1、通過構造函數注入 2、通過屬性注入(常用方式) 3、接口注入
那就涉及到相關的知識點,比如反射(類裝載器 和 反射機制)、資源通路機制
a. 反射(reflect)
b. 資源裝載器
資源,考慮資源的來源。可能是本地的file(jar、zip等),網絡的url(ftp等)。spring提供的resource接口比jdk通路資源api更強大個好用。其實就是一種vfs的特例吧。
1. 讀取配置檔案時,ant風格資源位址支援3中比對符:
?:比對一個字元 *:任意一個字元 **:比對多層路徑
resource 與 resourceloader uml圖:

beanfactory類繼承體系:
applicationcontext主要實作類:
a. classpathxmlapplicationcontext 從類路徑加載配置檔案
b. filesystemxmlapplicationcontext 從檔案系統加載配置檔案
spring用于啟動webapplicationcontext的servlet和web容器監聽器
待續。。。