【发布时间】:2011-08-18 21:17:00
【问题描述】:
我目前正在学习新的 Java EE 6 组件模型,但对最新的依赖注入机制感到困惑。所以这是我的问题:
1)@Inject 和@EJB 有什么区别
2) 如果我有一个包含另一个 POJO(其中一个是 DAO 代码)的简单 POJO,那么更好的选择是:@Inject 还是 @EJB?
我可以混合使用@Inject 和@EJB 吗?
一个例子是:
ClassA 实现 InterfaceA 并具有 ClassA_Adaptor 的一个实例
ClassA_Adaptor 实现 InterfaceAB 并且有一个 ClassB 的实例
ClassB 实现 InterfaceB 并具有 ClassB_Adaptor 的一个实例和一个 实例 DAO_ClassB
ClassB_Adaptor 实现 InterfaceB 并且有一个 ClassC 的实例
ClassC 实现 InterfaceBC 并具有 WebService_ClassC 的一个实例
DAO_ClassB 将使用 JPA 2.0 (@PersistenceContext)
我想注入所有这些,包括 DAO 和 WebService。
3) 仅对某些操作而不是全部使用事务性是一种不好的方法吗?
例如:DAO_ClassB 中的某些方法是您的典型查询,而其他方法是“写入”方法。不使用事务包装“READ”方法是不是很糟糕?
据我了解,DAO_ClassB 可以使用 @EJB 与事务一起包装(注入 DAO_ClassB 并使所有方法都具有事务性)。怎么控制?
抱歉,如果有些问题令人困惑,因为我只知道 Java EE 6 新组件模型的零碎部分。
【问题讨论】: