在我的JavaEE项目中,我有这样一个接口:
@Local
public interface DataAccess { ... }两个无状态bean实现了它:
@Stateless
public class DataAccess_Online implements DataAccess { ... }
@Stateless
public class DataAccess_Offline implements DataAccess { ... }我有个例外:
无法解析引用本地ejb-参考.因为在具有接口...DataAccess的应用程序中有两个ejb。
问题很明显,可能只有一个实现DataAccess的类。但如果我能用两杯的话会很方便的。在客户机中,我只想使用接口DataAccess,所以我不必在代码中区分在线或脱机,它们都提供了相同的方法。
在客户机中,我有一个依赖项注入:
@EJB
DataAccess da;我明白这是DataAccess的两个实现的问题,但是我应该改变什么来使它工作呢?客户端总是以在线版本的DataAccess开始,但是过了一段时间,他可以请求离线版本,所以离线版本只需要相同的接口,如果我需要一个DataAccess注入,它将永远是在线版本。
如何将两个接口实现与@EJB依赖项注入结合使用?
发布于 2013-02-24 14:55:30
您可以使用:
@Stateless(name="online")
public class DataAccess_Online implements DataAccess { ... }
@EJB(beanName="online")
DataAccess da;发布于 2013-02-24 14:31:35
解决方案很简单,我只需要介绍一个新的界面:
public interface DataAccessOffline extends DataAccess错误消失了,我可以使用@EJB注入DataAccess,但是我仍然可以在在线和离线实现之间切换。
https://softwareengineering.stackexchange.com/questions/188227
复制相似问题