java – 带接口的EJB依赖注入

我有一个带有方法m的接口和两个具体的实现A和B.

public interface I{
   public void m();
}
public class A implements I{
  public void m(){
    //
   }
}
public class B implements I{
    public void m(){
     //
    }
}

我想知道何时注入I将执行哪两种方法

@EJB
private I service;
///
service.m();
/////

最佳答案 它们都不会,因为应用程序服务器不知道要使用哪个实现,它将变成一个错误.为了避免这种情况,只需提供类实现的id,默认情况下该类的名称与类相同,但以小写字母开头:

//uncomment one of these
//@EJB(name="a")
//@EJB(name="b")
private I service;
点赞