我正在使用部署到JBoss AS 5.1的EJB3.1,所以我正在使用@EJB注入。从另一个EJB调用它时效果很好。像这个bean:
@Stateless (mappedName = "daos/MyDao")
public class MyDAO implements MyDaoRemote {
@PersistenceContext(unitName = "myEm")
private EntityManager em;
注入其他bean
@Stateless(mappedName = "handler/MyHandler")
public class MyHandler implements MyHandlerRemote {
@EJB(mappedName = "daos/MyDao")
private MyDaoRemote myDao;
但是,我的应用程序从POJO开始。我不认为你可以在EJB之外使用@EJB注入......那么,是否可以在不使用JNDI查找的情况下获取MyHandler?此代码有效:
return (MyHandlerRemote) new InitialContext().lookup("handler/MyHandler");
但我希望避免进行此查找。在Seam和Spring中,似乎更容易扫描注释类。
我可能不需要@EJB注入,但我喜欢让容器为我管理PersistenceContext,以及自动连线。
似乎Weld可以提供帮助,但我认为它不会像JB那样在JBoss AS 5.1中运行,但似乎应该有一个没有JNDI查找的EJB的起点。
提前致谢。