考虑一下春天的界面注入场景,我有一个由两个类实现的接口。如果我们使用@Autowired将接口注入另一个类。现在,如果我们在该接口中调用一个方法,那么将调用哪个类实现方法?考虑到我们没有使用@Qualifier注释。
enter code here
public interface EmployeeDAOI{
void save();
}
public class Emp1 implements EmployeeDAOI{
public void save(){
//some logic
}
}
public class Emp2 implements EmployeeDAOI{
public void save(){
//some logic
}
}
现在我们将EmployeeDAOI注入某个类
public class IterfaceEx{
@Autowired
private EmployeeDAOI edaoi;
public void setEmployeeDAOI(EmployeeDAOI edaoi){
this.edaoi=edaoi;
}
edaoi.save(); // My question is here which class method will be called ?
}
答案 0 :(得分:1)
无。 你得到一个例外:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [EmployeeDAOI] is defined: expected single matching bean but found 2: [emp1 , emp2]
Spring只需要一个实例,除非对Collection
个实例进行注入,或者使用区分方式(@Qualifier
)。