spring依赖接口注入两个实现的类

时间:2014-06-18 13:18:54

标签: spring dependency-injection

考虑一下春天的界面注入场景,我有一个由两个类实现的接口。如果我们使用@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 ?
}

1 个答案:

答案 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)。