spring容器負責建立bean,並通過依賴注入協調這些物件之間的關係。bean的裝配方式即bean依賴注入。spring支援多種形式的bean裝配方式,如基於xml的裝配,基於註解的裝配和自動裝配等。
1. 基於xml的bean裝配
基於xml的裝配方式有2種,屬性setter方法注入和構造方法注入。
setter方法注入
spring例項化bean的過程中,spring會首先呼叫bean的預設構造方法來例項化乙個bean物件,然後通過反射的方式呼叫setter方法注入屬性值。所以setter方法注入必須滿足2個條件:
bean類必須提供乙個預設的構造方法。
bean類必須為要注入的屬性提供對應的setter方法。
在配置檔案中,在元素的子元素中將每個屬性注入值。
例:entity類
package com.ssm.entity;
public
class
hello
public
void
say(
)}
spring配置檔案
"hello"
class
="com.ssm.entity.hello"
>
"name" value=
"張三"
>
<
/property>
<
/bean>
測試類
public
class
test
構造方法注入
spring使用構造方法注入被依賴的例項,構造方法可以是有參的或者無參的。spring採用反射的方式,通過使用構造方法來注入,每個引數代表乙個依賴。在配置檔案中,乙個元素代表構造方法的乙個引數,使用時不區分順序。避免混淆,可以用index屬性指定引數的位置索引(從0開始),另外還可以使用type屬性指定引數型別,避免字串和基本資料型別混淆。
例:entity類
package com.ssm.entity;
public
class
admininfo
//構造方法注入name和pwd
dmininfo
(string name, string pwd)
public
void
print()
}
配置檔案
"admininfo"
class
="com.ssm.entity.admininfo"
>
"id" value=
"5">
<
/property>
"name" value=
"admin" index=
"0" type=
"string"
>
<
/constructor-arg>
"pwd" value=
"admin" index=
"1" type=
"string"
>
<
/constructor-arg>
<
/bean>
測試類
package com.ssm;
import com.ssm.entity.admininfo;
public
class
test
}
2. 基於註解(annotation)的bean裝配
spring有一系列的註解:
3. 自動裝配
spring的元素有乙個autowire屬性,可通過設定autowire屬性來自動裝配bean。自動裝配就是將乙個bean注入到其他bean的property中。
autowire的屬性值:
Bean自動裝配的5種模式
在spring中,有五種autowire模式 byname,bytype,constructor,autodetect,no 下面分別對其進行介紹 1 byname 這個很簡單,直接按照名字進行查詢 package com.gc.action public class helloworld publ...
Spring 中Bean的自動裝配六種模式其一
spring2.5.6 中bean的自動裝配六種模式其一 spring ioc容器可以自動裝配 autowire 相互協作bean之間的關聯關係。因此,如果可能的話,可以自動讓spring通過檢查beanfactory中的內容,來替我們指定bean的協作者 其他被依賴的bean autowire一共...
Spring 中Bean的自動裝配六種模式其二
spring 中bean的自動裝配六種模式其二 spring ioc容器可以自動裝配 autowire 相互協作bean之間的關聯關係。因此,如果可能的話,可以自動讓spring通過檢查beanfactory中的內容,來替我們指定bean的協作者 其他被依賴的bean autowire一共有 六種型...