Spring 中Bean的自動裝配六種模式其二

2021-08-31 10:16:23 字數 1204 閱讀 3088

spring 中bean的自動裝配六種模式其二

spring ioc容器可以自動裝配(autowire)相互協作bean之間的關聯關係。因此,如果可能的話,可以自動讓spring通過檢查beanfactory中的內容,來替我們指定bean的協作者(其他被依賴的bean)。autowire一共有

六種型別。由於autowire可以針對單個bean進行設定,因此可以讓有些bean使用autowire,有些bean不採用。autowire的方便之處在減少或者消除屬性或構造器引數的設定,這樣可以給我們的配置檔案減**![

2] 在xml配置檔案中,可以在元素中使用autowire屬性指定:

模式 說明

bynname

根據屬性名自動裝配。此選項將檢查容器並根據名字查詢與屬性完全一致的bean,並將其與屬性自動裝配。例如,在bean定義中將autowire設定為by name,而該bean包含

master

屬性(同時提供

setmaster(..)

方法),spring就會查詢名為master的bean定義,並用它來裝配給master屬性。

下來我們就用案例來證明一下:準備

3個類:

public class addressserviceimpl 

}public class homeaddressserviceimpl extends addressserviceimpl

public homeaddressserviceimpl()

public homeaddressserviceimpl(string address)

}public class empserviceimpl

}

byname值的byname.xml配置檔案

<?xml version="1.0" encoding="utf-8"?>

北京海淀上地軟體園

測試類:(junit測試)  

@test

public void test()}

注意:

byname

在使用的過程中必須保證bean能夠初始化,否則的話會出現bug

如果有預設的無引數的構造器就不需要多餘的配置

如果有帶有引數的構造器,那在bean的配置中必須配置器初始化的引數 或者在bean中新增無引數的構造器

Spring 中的Bean 自動掃瞄

將spring 配置成如下這樣.就表示 spring 將掃瞄所有的com.yourhz下面的bean.那麼bean應當如何寫才能被他掃瞄到呢。我們看如下乙個例子。在類名上面加如下一句,則表示這是乙個受制於spring 的 bean controller 如果寫成這樣的,估計表示bean的控制代碼名稱...

Spring中Bean的自動裝配

1.no 不做任何操作 class com.test.a name b ref b property id b class com.test.b 2.byname 根據屬性名自動裝配。此選項將檢查容器並根據名字查詢與屬性完全一致的bean,並將其與屬性自動裝配 修改配置檔案 id a class c...

spring中Bean的自動裝配

新增乙個person類 package autowire public class person public void setname string name public address getaddress public void setaddress address address publ...