1. 程式人生 > >spring中IOC容器建立物件,物件依賴關係處理

spring中IOC容器建立物件,物件依賴關係處理

SpringIOC容器

1) 建立物件

SpringIOC容器,是spring核心內容。

作用: 建立物件 & 處理物件的依賴關係

IOC容器建立物件:

建立物件, 有幾種方式:

1) 呼叫無引數構造器

2) 帶引數構造器

3) 工廠建立物件

工廠類,靜態方法建立物件

工廠類,非靜態方法建立物件

1) 呼叫無引數構造器

先看一下包結構。


建一個User實體類其中定義好無參構造器和有參構造器。


在bean.xml中載入無參構造方法


2) 帶引數構造器

在bean.xml中載入有參構造方法


或者自己將要傳方值另外定義好(不把程式碼寫死)


工廠類,靜態方法建立物件

3) 工廠建立物件


工廠類,非靜態方法建立物件靜態方法建立物件


建立一個測試類來使用一下:



 物件依賴關係

Spring中,如何給物件的屬性賦值?  DI, 依賴注入】

1) 通過建構函式

2) 通過set方法給屬性注入值

3) p名稱空間

4)自動裝配(瞭解)

5) 註解

1) 通過建構函式


2) 通過set方法給屬性注入值


3) p名稱空間


4)自動裝配(瞭解) 

通過屬性名稱就行裝配


全域性的自動裝配


通過屬性型別就行裝配

default-autowire="byType"

注意:當同類型物件存在兩個時則會報錯。

總結:

Spring提供的自動裝配主要是為了簡化配置; 但是不利於後期的維護。

(一般不推薦使用)


5) 註解

註解方式可以簡化spring的IOC容器的配置!

使用註解步驟:

1)先引入context名稱空間

xmlns:context="http://www.springframework.org/schema/context"


2)開啟註解掃描

<context:component-scan base-package="cn.itcast.e_anno2"></context:component-scan>


3)使用註解

通過註解的方式,把物件加入ioc容器。

建立物件以及處理物件依賴關係,相關的註解:

@Component   指定把一個物件加入IOC容器

@Resource     屬性注入



   

也可以將括號中的內容省略(就是直接通過型別查詢)

示例:


 或者我們可以按層結構進行註解

@Repository   作用同@Component; 在持久層使用

@Service      作用同@Component; 在業務邏輯層使用

@Controller    作用同@Component; 在控制層使用

 示例:




註解也可以和bean建立物件一起使用

比如將持久層不加註解,然後在bean.xml中配置物件

<bean id="userDao" class="cn.itcast.property.UserDao" ></bean>

總結:

1) 使用註解,可以簡化配置,且可以把物件加入IOC容器,及處理依賴關係(DI)
2) 註解可以和XML配置一起使用。