Bean的自動裝配3

Bean的自動裝配----ByName

ByName模式:

根據屬性名自動裝配。此選項將檢查容器並根據名字查找與屬性完全一致的bean,並將其與屬性自動裝配。例如,在bean定義中將autowire設置爲by name,而該bean包含master屬性(同時提供setMaster(..)方法),Spring就會查找名爲masterbean定義,並用它來裝配給master屬性。

 

案例:
EmpServiceImpl.java
public class EmpServiceImpl {
       
	private AddressServiceImpl addressServiceImpl;	
	public AddressServiceImpl getAddressServiceImpl() {
		return addressServiceImpl;
	}
	public void setAddressServiceImpl(AddressServiceImpl addressServiceImpl) {
		this.addressServiceImpl = addressServiceImpl;
	}
	public  void   address(){
		System.out.println("address方法由測試類中調用:"+addressServiceImpl.getAddress() );
		
	}
}
AddressServiceImpl.java
public class AddressServiceImpl {

	private String address;
	public void setAddress(String address) {
		this.address = address;
	}
	public String getAddress() {
		System.out.println("顯示xml中賦的address的值是" + address);
		return address;
	}

}
Xml中的bean
<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"
		scope="singleton" autowire="byName" />
//一下bean的id的值需要同EmpServiceImpl類中封裝的AddressServiceImpl類的對象的名稱一樣。ByName就是根據此名稱進行查找的
	<bean id="addressServiceImpl" class="cn.csdn.service.AddressServiceImpl"
		scope="singleton">
		<property name="address">
			<value>北京中關村</value>
		</property>
	</bean>
byname
   byType
   在使用的過程中必須保證bean能夠初始化即含有一個默認的構造器,否則的話會出現bug
   如果有默認的無參數的構造器就不需要多餘的配置
   如果有帶有參數的構造器,那在bean的配置中必須配置器初始化的參數 或者在bean中添加無參數的構造器

 

補充內容:依賴檢查

Spring除了能對容器中bean的依賴設置進行檢查外。還可以檢查bean定義中實際屬性值的設置,當然也包括採用自動裝配方式設置屬性值的檢查。

模式

說明

none

沒有依賴檢查,如果bean的屬性沒有值的話可以不用設置。

simple

對於原始類型及集合(除協作者外的一切東西)執行依賴檢查

object

僅對協作者執行依賴檢查

all

對協作者,原始類型及集合執行依賴檢查

 

dependency-check="objects":依賴對象檢查 ,如果對象不存在(即找不到bean時)就會出現bug

  dependency-check:

         none:沒有依賴檢查

         simple(除了協作者)原始數據、集合執行依賴檢查

         objects僅對協作者的依賴檢查

         all 所有

自動裝配就是針對bean的,匹配過程中可以依賴檢查,檢查的值爲objects指的是僅對協作者執行依賴檢查

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章