Spring由構造方法自動裝配


在Spring中,可以使用「通過構造自動裝配」,實際上是按建構函式的引數型別自動裝配。 這意味著,如果一個bean的資料型別與其他bean的構造器引數的資料型別是相同的,那麼將自動裝配。
下面看看Spring建構函式自動裝配的一個完整例子。

1. Beans

這裡有兩個 beans, 分別是:developer 和 language

package com.tw511.common;

public class Developer {
	private Language language;

	//autowire by constructor
	public Developer(Language language) {
		this.language = language;
	}

	//...

}
package com.tw511.common;

public class Language {
	private String name;
	//...
}

2. Spring裝配

通常情況下,你可以通過構造這樣自動裝配 Bean:
<bean id="developer" class="com.tw511.common.Developer">
		<constructor-arg>
			<ref bean="language" />
		</constructor-arg>
	</bean>
		
	<bean id="language" class="com.tw511.common.Language" >
		<property name="name" value="Java" />
	</bean>

輸出

Developer [language=Language [name=Java]]
隨著自動裝配用建構函式啟用後,你可以不設定構造器屬性。Spring會找到相容的資料型別,並自動裝配它。
<bean id="developer" class="com.tw511.common.Developer" autowire="constructor" />
		
	<bean id="language" class="com.tw511.common.Language" >
		<property name="name" value="Java" />
	</bean>

輸出

Developer [language=Language [name=Java]]

下載程式碼 –  http://pan.baidu.com/s/1c1lKhTA