Bean的3種裝配模式

2021-10-02 05:19:48 字數 1980 閱讀 2987

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一共有 六種型...