自动装配使用autowaire
public class Restaurant {
private Waiter wt;
public Restaurant() {
System.out.println("Restaurant()");
}
public void setWt(Waiter wt) {
System.out.println("setWt() " + wt);
this.wt = wt;
}
@Override
public String toString() {
return "Restaurant [wt=" + wt + "]";
}
}
public class Waiter {
public Waiter() {
System.out.println("Waiter()");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!--
autowire:配置自动装配
1.byName:容器依据属性名去查找对应的bean(即:以属性名作为bean的id,查找的bean的id必须和其属性名一致),找到之后,调用对应的set()方法
注:如果找不到对应的bean,就不会注入,不会报错。(推荐使用)
2.byType:容器会依据属性类型查找对应的bean(即:查找类型与属性类型一致的bean),找到之后,调用对应的set()方法
注:1、如果找不到对应的bean,就不会注入,不会报错。
2、如果找到多个,会报错
3.constructor:找到之后,会调用构造器来注入,如果找到多个,只会注入一个,如果找不到对应的bean,直接报错
-->
<bean id="phone" class="org.spring.teach.Phone"/>
<bean id="user" class="org.spring.teach.User" autowire="byName"/>
<bean id="user1" class="org.spring.teach.User" autowire="byType"/>
<bean id="user" class="org.spring.teach.User" autowire="constructor"/>
</beans>