@EJB
可以使用注解将 EJB 引用注入到另一个 EJB 中。下面是一个来自 OpenEJB 文档的注入其他 EJB 示例的示例:
编码
在此示例中,我们开发了两个简单的会话无状态 bean(DataReader 和 DataStore),并展示了我们如何在其中一个 bean 中使用 @EJB 注释来获取对另一个会话 bean 的引用
数据存储会话 bean
豆
@Stateless
public class DataStoreImpl implements DataStoreLocal, DataStoreRemote{
public String getData() {
return "42";
}
}
本地业务接口
@Local
public interface DataStoreLocal {
public String getData();
}
远程业务接口
@Remote
public interface DataStoreRemote {
public String getData();
}
DataReader 会话 bean
豆
@Stateless
public class DataReaderImpl implements DataReaderLocal, DataReaderRemote {
@EJB private DataStoreRemote dataStoreRemote;
@EJB private DataStoreLocal dataStoreLocal;
public String readDataFromLocalStore() {
return "LOCAL:"+dataStoreLocal.getData();
}
public String readDataFromRemoteStore() {
return "REMOTE:"+dataStoreRemote.getData();
}
}
@EJB
请注意DataStoreRemote 和 DataStoreLocal 字段上注释的用法。这是 EJB 引用解析所需的最小值。如果您有两个实现相同业务接口的 bean,您将需要 beanName 属性,如下所示:
@EJB(beanName = "DataStoreImpl")
private DataStoreRemote dataStoreRemote;
@EJB(beanName = "DataStoreImpl")
private DataStoreLocal dataStoreLocal;
本地业务接口
@Local
public interface DataReaderLocal {
public String readDataFromLocalStore();
public String readDataFromRemoteStore();
}
(为简洁起见,未显示远程业务接口)。
如果它没有按预期工作,可能会显示一些代码。