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...