我一直试图找出这是否可能,但无法得到答案。
我有一个EJB 3.0类及其本地接口。
@Local
public interface MyService {
public String foo();
}
@Stateless
public class MyServiceBean implements MyService {
@Resource(name="type") private String type;
public String foo() { return type; }
}
现在,问题就在这里。我想定义两个使用相同类的不同名称的EJB,以便我可以注入两个不同的“类型”值(在ejb-jar.xml中定义)。
然后在另一个类中使用它,例如:
@EJB(mappedName="MyServiceBeanA")
private MyService myServiceBeanA;
@EJB(mappedName="MyServiceBeanB")
private MyService myServiceBeanB;
THX, 丹尼尔
答案 0 :(得分:0)
我自己没有尝试过,但我建议您尝试一下,看看它是否有效,我相信它会,但是,如果没有,那么你可以创建一个扩展两个本地接口的超级接口你想要并让你的bean实现这个新的超级界面。然后你可以称之为
@Local
public interface MyService1 {
public String foo();
}
@Local
public interface MyService2 {
public String foo();
}
public interface SuperInterface extends MyService1, MyService2{
}
@Stateless
public class MyServiceBean implements SuperInterface {
@Resource(name="type") private String type;
public String foo() { return type; }
}
@EJB(mappedName="MyServiceBeanA")
private SuperInterface myServiceBeanA;
@EJB(mappedName="MyServiceBeanB")
private SuperInterface myServiceBeanB;