1. 程式人生 > >回顧複習Spring學習(二)

回顧複習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 的屬性,比傳統的配置方式更加的簡潔