假设我有如下无状态 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 并在任何地方使用它更好?