【发布时间】:2017-04-27 15:09:49
【问题描述】:
在自动装配 byType 中,如果属性类型与多个 bean 匹配,那么它会抛出异常,但是当我使用注解 @Autowired 并定义具有相同属性类型的两个 bean 时,我看不到任何异常。 下面是代码: Employee.java:
public class Employee {
private int id;
private String name;
private int salary;
// Getter and Setter
}
部门:
public class Dept {
@Autowired
private Employee emp;
public Employee getEmp() {
return emp;
}
public void setEmp(Employee emp) {
this.emp = emp;
}
@Override
public String toString() {
return emp.getName();
}
}
Beans.xml:
<bean id = "dept" class = "Dept"></bean>
<bean id = "emp" class = "Employee">
<property name="id" value="25"></property>
<property name="name" value="Ram"></property>
<property name="salary" value="32000"></property>
</bean>
<bean id = "emp1" class = "Employee">
<property name="id" value="25"></property>
<property name="name" value="Sanju"></property>
<property name="salary" value="32000"></property>
</bean>
AppMain.java:
public class AppMain {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
Dept d = (Dept)context.getBean("dept");
System.out.println(d);
}
}
如果我做错了什么,请纠正我。
【问题讨论】:
标签: java spring spring-integration autowired