EJB 3.0多个实例

时间:2012-01-24 22:22:50

标签: ejb-3.0

我一直试图找出这是否可能,但无法得到答案。

我有一个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, 丹尼尔

1 个答案:

答案 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;