扩展对 Java EE 6 中托管 Bean 的理解
Java EE 6 规范包含大量用于处理托管 Bean 的注释,包括:
- @javax.annotation.ManagedBean
- @javax.inject.Named
- @javax.faces.ManagedBean
浏览托管 Bean 的范围
-
JSF 托管 Bean: 由 JavaServer Faces (JSF) 规范提供,这些 Bean 支持以下组件的 Bean 创建和依赖项注入: JSF 页面。与 CDI bean 相比,它们提供的功能有限,应该逐步淘汰,以支持后者。
-
CDI Bean:随 CDI 一起引入,这些 bean 提供高级功能,例如拦截器、事件处理、以及带有限定符的依赖注入。它们代表了 Java EE 6 及更高版本中的主要托管 Bean 机制。
-
EJB:Enterprise JavaBeans (EJB) 是 Java EE 中的一个基本概念,提供事务性、分布式和有状态/无状态服务。它们提供了 CDI beans 不可用的功能,例如钝化和计时器。
注入最佳实践
可以通过以下注释实现托管 Bean 的注入:
-
@Inject: 用于注入 CDI bean 和 EJB
-
@EJB: 专门用于将 EJB 注入其他托管 bean
-
@ManagedProperty: Java EE 6 中仍支持旧的注释,但建议使用 @Inject。
选择最佳托管 Bean 类型
使用哪种托管 Bean 类型取决于应用程序的具体要求:
-
CDI Bean:一般的默认选择 -目的托管 Bean,提供广泛的功能和灵活性。
-
EJB: 对于事务管理、钝化和计时器等功能至关重要。
以上是在 Java EE 6 中您应该选择哪种托管 Bean 类型?的详细内容。更多信息请关注PHP中文网其他相关文章!