在新的EJB 3.1规范中,是否可以将EJB注入到POJO(简单Java对象)中?我知道在EJB 3.0中,@EJB注释可用于注入EJB,但无法在简单的POJO上使用。
如果不行,我是否需要在JNDI中查找bean,因为我知道不能简单地使用新关键字。
@Inject MyEJB service
但是这不是 EJB 3.1 的功能,而是来自 CDI。如果您没有使用 CDI,那么您将需要进行查找。
是的,使用JNDI查找。
由于您创建了POJO(我假设如此),容器不负责注入依赖项。
我也在想是否可以将EJB注入到未受管对象中。请参阅Weld(JSR 299参考实现)文档以获取更多详细信息。
但是您可以像这样在存储库或工厂内手动执行依赖项注入:
@Stateless
public PojoRespository {
@Inject
ResourceForPojos resource;
@PersistenceContext
private EntityManager em;
public Pojo findById(Object id) {
Pojo p = (Pojo) em.find(Pojo.class, id);
p.setResource(resource); // injects resource
return p;
}
}