我正在使用部署到JBoss AS 5.1的EJB3.1,所以我正在使用@EJB注入。從另一個EJB調用時,它很好用。像這樣的bean:EJB3.1 - 可能在沒有JNDI查找的情況下啓動@EJB注入鏈?
@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可以提供幫助,但我不認爲它可以在JBoss AS 5.1中工作,Spring也是如此,但似乎應該有一個沒有JNDI查找的EJB的起點。
在此先感謝。
海事組織,無論你想實現的目標是不可能沒有CDI。 – 2011-12-28 20:28:37
試試這個: –
Forty
2011-12-28 20:32:02
無賴......只有我知道的JSR-299實現是Weld和Guice,似乎就像解決一個非常基本的問題一樣。 – javatestcase 2011-12-28 20:38:56