Spring中bean的基本xml配置

2021-08-22 10:56:09 字數 2321 閱讀 4322

原帖及討論:

在spring容器內拼湊bean叫作裝配。裝配bean的時候,你是在告訴容器,需要哪些bean,以及容器如何使用依賴注入將它們配合在一起。

理論上,bean裝配可以從任何資源獲得,包括屬性檔案,關聯式資料庫等,但xml是最常見的spring 應用系統配置源。spring中的幾種容器都支援使用xml裝配bean,包括:

xmlbeanfactory ,

基本的xml配置包括如下幾個方面:

1.新增乙個bean

2.設定bean的屬性

2.1 手動設定

2.1.1 通過setter方法

2.1.2 通過構造器

2.2 自動設定

其中bean的屬性即為bean裡的成員變數,這些成員變數值的獲得可以通過setter方法,例如某個屬性為name,則setter方法為setname(string name);或者通過構造器在類被例項化時初始化。setter方法(例如setname方法)或者構造器的呼叫都可以通過在xml檔案裡進行配置,從而實現讓spring容器來自動進行。

1.新增乙個bean

以下是乙個例子:

下面是對該標籤裡各個屬性的解釋:

id : 標識該bean的名稱,通過factory.getbean(「id」)來獲得例項。

class : 該bean的類路徑。

singleton : 預設為true,即單例項模式,每次getbean(「id」)時獲取的都是同

乙個例項,如果設定為false,即原型模式,則每次獲取的是新建立

的例項。

init-method : 在bean例項化後要呼叫的方法(bean裡定義好的方法)。

destroy-method : bean從容器裡刪除之前要呼叫的方法。

autowire : 其屬性要通過何種方法進行屬性的自動裝配。

對於上述的各個屬性,id和class是必要的,其他的則可以省略。例如如果設定了autowire的值,則表明需要自動裝配,否則是手動裝配。

2.通過setter方法手動設定bean裡的屬性

bean裡的屬性通過標籤來標識。有以下幾種情況:

● 簡單型別屬性

springtest

● 引用其他bean

也可以將改為

這樣叫做內部bean,缺點是無法在其他地方重用這個bean的例項。

● 裝配集合

共有以下幾種集合的裝配:

****裝配list和陣列****

something

otherthing

****裝配set****

something

otherthing

****裝配map****

value1

****裝配properties****

value1

value2

● 設定null

要將乙個屬性null,需要通過標籤,如果不設定,則屬性為預設值(在例項化時)而不是null。

3.通過構造器手動設定bean裡的屬性

public class mybean

則可以在xml裡這樣配置該bean:

springtest

其中的index是用來標識該引數在建構函式裡的位置的,並從0開始。

4.讓spring完成自動裝配

例如:下面是幾種autowire type的說明:

● byname : 試圖在容器中尋找和需要自動裝配的屬性名相同的bean或id,如果沒有找到相應的bean,則這個屬性未被裝配上。

● bytype : 試圖在容器中尋找乙個與需要自動裝配的屬性型別相同的bean或id,如果沒有找到,則該屬性未被裝配上。

● constructor : 試圖在容器中尋找與需要自動裝配的bean的構造函式引數一致的乙個或多個bean,如果沒找到則丟擲異常。

● autodetect : 首先嘗試使用constructor來自動裝配,然後再使用bytype方式。

從上面可以看出,如果某個bean不手動設定autowire屬性,則預設為手動裝配。如果需要將所有bean都設定為自動裝配時,可以通過在標籤中設定default-autowire屬性。標籤是整個xml文件的根,在它下面就是乙個個的。

其中default-autowire的值也有byname,bytype,constructor,autodetect四種。

例如配置如下:

...自動裝配可能帶來不確定性問題。例如使用bytype時可能同時發現兩個相同的型別,則不知道該採用哪乙個。所以可能混合採用自動和手動裝配。例如,對某個bean設定為自動裝配,而對其某個屬性則手動明確的設定其值,例如:

通過這樣的配置,對mybean裡的name屬性進行手動裝配,而對除name外的其他屬性就進行自動裝配。

Spring中bean的基本xml配置

1 新增乙個bean 以下是乙個例子 下面是對該標籤裡各個屬性的解釋 id 標識該bean的名稱,通過factory.getbean id 來獲得例項。class 該bean的類路徑。singleton 預設為true,即單例項模式,每次getbean id 時獲取的都是同 乙個例項,如果設定為fa...

Spring中bean的基本xml配置

基本的xml配置包括如下幾個方面 1 新增乙個bean 2 設定bean的屬性 2.1 手動設定 2.1.1 通過setter方法 2.1.2 通過構造器 2.2 自動設定 其 中bean的屬性即為bean裡的成員變數,這些成員變數值的獲得可以通過setter方法,例如某個屬性為name,則sett...

Spring中bean的基本xml配置

基本的xml配置包括如下幾個方面 1 新增乙個bean 2 設定bean的屬性 2.1 手動設定 2.1.1 通過setter方法 2.1.2 通過構造器 2.2 自動設定 其中bean的屬性即為bean裡的成員變數,這些成員變數值的獲得可以通過setter方法,例如某個屬性為name,則sette...