使用autowire属性指定自动装配的方式
byName根据bean的名字和setter的风格属性名进行自动装配,若有匹配的,则自动装配,若无匹配的,则不装配。
byType根据bean的类型和当前bean的属性的类型进行自动装配。
例:
Person.java
package com.wanhao;
import java.util.List;
public class Person {
private String name;
private int age;
private Car car;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", car=" + car + "]";
}
public void setAge(int age) {
this.age = age;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
}
Car.java
package com.wanhao;
public class Car {
private String name;
private int maxSpeed;
private String place;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Car() {
super();
}
public int getMaxSpeed() {
return maxSpeed;
}
@Override
public String toString() {
return "Car [name=" + name + ", maxSpeed=" + maxSpeed + ", place=" + place
+ "]";
}
public Car(String name, int maxSpeed, String place) {
super();
this.name = name;
this.maxSpeed = maxSpeed;
this.place = place;
}
public void setMaxSpeed(int maxSpeed) {
this.maxSpeed = maxSpeed;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
}
applicationContext.xml
<bean id="car" class="com.wanhao.Car">
<property name="name" value="Ford"/>
<property name="maxSpeed" value="300"/>
<property name="place" value="CA"/>
</bean>
<bean id="car2" class="com.wanhao.Car">
<constructor-arg name="maxSpeed" value="301"></constructor-arg>
<constructor-arg name="name" value="BMW"></constructor-arg>
<constructor-arg name="place" value="CHINA"></constructor-arg>
</bean>
<bean id="person" class="com.wanhao.Person" autowire="byName"></bean>
这里会根据Person的get方法,自动装载car这个bean,而byType会报错。