EJB的依赖注入

时间:2014-01-04 12:33:11

标签: java-ee dependency-injection ejb

我在不使用Dependency Injection的情况下研究EJB的{​​{1}},并且出现了两个问题。我很感激任何人都可以回答以下问题:

1)是否可以在CDI内注入带有Stateful注释的会话Bean(Stateless ot @EJB)?

2)如果让两个Session Beans实现相同的接口,是否可以使用Message Driven Beans注释注入它们仅指定接口名称?如何让@EJB知道要注入的特定Bean类?例如:

Container

如何在不使用@Remote public interface RemoteInterface{} @Stateless public class BeanA implements RemoteInterfaceA{} @Stateless public class BeanB implements RemoteInterfaceA{} @Stateful public class StatefulBean{ @EJB RemoteInterface } Qualifiers的情况下指定注入哪个Bean?

1 个答案:

答案 0 :(得分:1)

1)当然,当您在MDB中收到消息时,通常需要从某个服务EJB调用方法。

2)有可能,您可以命名您的bean,然后按名称注入它,请参阅我的示例

@Stateless(name="bean1")
public class BeanA implements RemoteInterfaceA{}

@Stateless(name="bean2")
public class BeanB implements RemoteInterfaceA{}

@Stateless
public class Bean3 {

    @EJB(beanName="bean1")
    private RemoteInterfaceA bean;  
    //first bean should get injected here 
}