天天看點

《Spring 3.X 企業應用開發實戰》摘記 【IOC】一、IOC的概念二、注入的方式三、如何實作其注入呢?

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圖:

《Spring 3.X 企業應用開發實戰》摘記 【IOC】一、IOC的概念二、注入的方式三、如何實作其注入呢?

beanfactory類繼承體系:

《Spring 3.X 企業應用開發實戰》摘記 【IOC】一、IOC的概念二、注入的方式三、如何實作其注入呢?

applicationcontext主要實作類:

a. classpathxmlapplicationcontext 從類路徑加載配置檔案

b. filesystemxmlapplicationcontext 從檔案系統加載配置檔案

spring用于啟動webapplicationcontext的servlet和web容器監聽器

待續。。。