【发布时间】:2012-09-18 22:26:00
【问题描述】:
假设我有如下的无状态 EJB:
@Stateless
public class MyService {
@PersistenceContext(unitName="persistence")
private EntityManager em;
...
}
所以这是带有 java ee 5 注释的注入,例如@PersistenceContext。
如果我使用 CDI,我不能简单地使用 @Inject,对吧?我需要为此创建生产者使用限定符,如下所示
class DBProducer {
@Produces
@PersistenceContext(unitName = "persistence")
@MyDatabase
private EntityManager em;
}
我不介意 LOC 的数量。我的问题是我应该使用什么方式?可以将这两者混合使用:CDI @Inject 和那些旧的 Java EE 5 注释,如 @EJB、@PersistenceContext 等,还是坚持使用 CDI 并在任何地方使用它更好?
【问题讨论】:
标签: java jakarta-ee annotations cdi inject