我目前正在学习新的Java EE 6组件模型,并且与最新的依赖注入机制相混淆.所以这是我的问题:
1)@ Inject和@EJB之间有什么区别
2)如果我有一个包含另一个POJO的简单POJO(其中一个是DAO代码),那么更好的选择是什么:@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新组件模型的部分内容.
一个新手问题:无论如何,我可以根据我在属性文件中设置的条件注入不同的bean.这就是我想要实现的目标:
我在属性文件中设置了一些值.如果这是真的,那么我想
public class MyClass{
@EJB
private MyBean bean;
}
Run Code Online (Sandbox Code Playgroud)
如果它是假的,那么
public class MyClass{
@EJB
private MyBean2 bean2;
}
Run Code Online (Sandbox Code Playgroud)
这可行吗?