回顧複習Spring學習(二)
工作原因很久沒有用過這些關於JavaEE的東西,寫這些部落格是回顧複習同時加深學習,也希望大家同時可以借鑑和學習交流,建立了一個qq群有意的各位可以加一下互相交流學習,後續部落格還會陸續更新。
IOC和DI
IOC(Inversion of Control):其思想是反轉資源獲取的方向. 傳統的資源查詢方式要求元件向容器發起請求查詢資源. 作為迴應, 容器適時的返回資源. 而應用了 IOC 之後, 則是容器主動地將資源推送給它所管理的元件, 元件所要做的僅是選擇一種合適的方式來接受資源. 這種行為也被稱為查詢的被動形式
DI(Dependency Injection) — IOC 的另一種表述方式:即元件以一些預先定義好的方式(例如: setter 方法)接受來自如容器的資源注入. 相對於 IOC 而言,這種表述更直接
Spring IOC容器中配置bean
在xml中
id:Bean 的名稱。 在 IOC 容器中必須是唯一的
若 id 沒有指定,Spring 自動將許可權定性類名作為 Bean 的名字 id 可以指定多個名字,名字之間可用逗號、分號、或空格分隔
Spring 提供了兩種型別的 IOC 容器實現.
BeanFactory: IOC 容器的基本實現.
ApplicationContext: 提供了更多的高階特性. 是 BeanFactory 的子介面.
BeanFactory 是 Spring 框架的基礎設施,面向 Spring 本身;ApplicationContext 面向使用 Spring 框架的開發者,幾乎所有的應用場合都直接使用 ApplicationContext 而非底層的 BeanFactory
無論使用何種方式, 配置檔案時相同的
獲取bean用getBean方法
依賴注入的方式
Spring 支援 3 種依賴注入的方式
屬性注入 就相當於set方法
構造器注入 可以用index屬性和type來制定型別循序
工廠方法注入(基本不用)
在 Bean 的配置檔案中, 可以通過 <ref> 元素或 ref 屬性為 Bean 的屬性或構造器引數指定對 Bean 的引用
還有對集合屬性的操作如list,map,properties這個跟hibernate整合會常用
使用 utility scheme 定義集合 可以使一個list集合被多個bean使用
p 名稱空間,可以通過 <bean> 元素屬性的方式配置 Bean 的屬性,比傳統的配置方式更加的簡潔