创建应用对象之间协作关系的行为被称为装配(wiring),而不是实例化对象的过程,xml文件中,通过<property name="xxx" ref="yyy" />的方式来装配了依赖对象.
xml中通过autowire=""实现自动装配
1.default(beans这个标签的default-autowired属性)
2.通过byName自动装配
就是通过Bean的属性名字进行自动装配,在配置文档中查找一个与将要装配的属性同样名字的Bean。示例如下:
package com.example.demo.test;
import java.util.Date;
public class HelloWorld {
private String msg;
private Date date;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
xml
<bean id="HelloWorld" class="com.example.demo.test.HelloWorld"
autowire="byName">
<property name="msg">
<value>HelloWorld</value>
</property>
</bean>
3.通过byType模式自动装配
指的就是如果XML中正好有一个与属性类型一样的Bean,就自动装配这个属性。如果存在多个这样的Bean,就抛出一个异常。
<bean id="HelloWorld" class="com.example.demo.test.HelloWorld"
autowire="byType">
<property name="msg">
<value>HelloWorld</value>
</property>
</bean>
4.、通过constructor模式自动装配
通过构造函数自动装配
package com.example.demo.test;
import java.util.Date;
public class HelloWorld {
private String msg;
private Date date;
public HelloWorld(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
通过注解实现自动装配
@Autowired
Public HelloWorld helloWorld;