在Spring中,可以使用“通过构造自动装配”,实际上是按构造函数的参数类型自动装配。 这意味着,如果一个bean的数据类型与其他bean的构造器参数的数据类型是相同的,那么将自动装配。
下面看看Spring构造函数自动装配的一个完整例子。
1. Beans
这里有两个 beans, 分别是:developer 和 language
package com.yiibai.common; public class Developer { private Language language; //autowire by constructor public Developer(Language language) { this.language = language; } //... }
package com.yiibai.common; public class Language { private String name; //... }
2. Spring装配
通常情况下,你可以通过构造这样自动装配 Bean:
<bean id="developer" class="com.yiibai.common.Developer"> <constructor-arg> <ref bean="language" /> </constructor-arg> </bean> <bean id="language" class="com.yiibai.common.Language" > <property name="name" value="Java" /> </bean>
输出
Developer [language=Language [name=Java]]
随着自动装配用构造函数启用后,你可以不设置构造器属性。Spring会找到兼容的数据类型,并自动装配它。
<bean id="developer" class="com.yiibai.common.Developer" autowire="constructor" /> <bean id="language" class="com.yiibai.common.Language" > <property name="name" value="Java" /> </bean>
输出
Developer [language=Language [name=Java]]