您的位置:首页 > 编程语言 > Java开发

Spring Autowiring by Constructor

2015-08-22 11:41 441 查看
In Spring, “Autowiring by Constructor” is actually autowiring by Type in constructor argument. It means, if data type of a bean is same as the data type of other bean constructor argument, auto wire it.

See a full example of Spring auto wiring by constructor.

1. Beans

Two beans,
developer
and
language
.

package com.mkyong.common;

public class Developer {
private Language language;

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

//...

}

package com.mkyong.common;

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

2. Spring Wiring

Normally, you wire the bean via constructor like this :

<bean id="developer" class="com.mkyong.common.Developer">
<constructor-arg>
<ref bean="language" />
</constructor-arg>
</bean>

<bean id="language" class="com.mkyong.common.Language" >
<property name="name" value="Java" />
</bean>

Output

Developer [language=Language [name=Java]]

With autowire by constructor enabled, you can leave the
constructor
property unset. Spring will find the compatible data type and wire it automatcailly.

<bean id="developer" class="com.mkyong.common.Developer" autowire="constructor" />

<bean id="language" class="com.mkyong.common.Language" >
<property name="name" value="Java" />
</bean>

Output

Developer [language=Language [name=Java]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: