当有多个EJB时,如何“缩小”到特定的EJB

时间:2017-02-08 14:28:30

标签: java java-ee ejb ejb-3.0

我有以下情况:

两个EJB实现相同的接口

@Stateless(name="theOne")
public class EjbOne implements InterfaceOne {
    ...
}

@Stateless(name="theSecond")
public class EjbTwo implements InterfaceOne {
    ...
}

我想将特定的EJB注入第三个类

@Stateless
public class EjbThree  {
    @EJB(...???...mappedName="theOne"? name=...? )
    private EjbOne ejbOne;
}

我该怎么做? (记住,我正在使用@EJB,而不是@Inject和@Qualifier)

1 个答案:

答案 0 :(得分:0)

您正在引用具体类private EjbOne ejbOne;没有其他选择。如果你想使用旧的多态性@EJB private InterfaceOne ejbOne,那么你根本不使用界面,你应该这样引用,那么你的问题就有意义了,你可以做的是:

一个。 @EJB(beanName="EjbOne") private InterfaceOne ejbOne

@EJB(lookup ="jndi-address") private InterfaceOne ejbOne

℃。 @EJB(mappedName="vendor-specific-address") private InterfaceOne ejbOne

d。 @EJB(name="java:comp/env like logical name") private InterfaceOne ejbOne

https://docs.oracle.com/javaee/7/api/javax/ejb/EJB.html