1

有人可以查看Java EE 5、6、7中托管 Bean或类的当前列表吗?除了 EJB 和 JSF 托管 bean,它们是其他类吗?

在“EJB 3 in Action”一书的第 5 章(学习高级 EJB 概念)中提到:

“DI 仅在托管类中受支持,您不能在帮助程序或实用程序类中使用注入。”

这就是为什么我想知道通常可以支持依赖注入的托管 bean 是什么。

- 请不要忘记提及在线参考和文档(如果有) - 提前致谢。

4

2 回答 2

4

从 EE 6 开始:

  • EJB(EJB 3.1,第 2.8 节 - “与托管 Bean 规范的关系”)
  • CDI(JSR-299,第 1.2.3 节 - “与托管 bean 的关系”)
  • JSF(托管 Beans 1.0,MB.1.2 部分)

由于规范预计将建立在托管 bean 规范之上,因此平台规范没有提供完整的列表,因此您必须查看 EE 6 中包含的每个规范。我对 JSF 的证据是最弱的,因为最新的 JSF 规范没有明确声明它建立在托管 bean 规范之上。但是,托管 bean 规范本身声明它旨在作为 JSF 的泛化。

也就是说,EE 6 平台规范中的表 EE.5-1 包含支持注入、PostConstruct 和 PreDestroy 的组件类列表。这个列表可以说比知道哪些组件技术列表是明确的“托管 bean”更有用。

  • Servlet(servlet、servlet 过滤器、事件监听器)
  • JSP(标签处理程序、标签库事件监听器)
  • JSF(作用域托管 bean)
  • JAX-WS(服务端点、处理程序)
  • EJB(bean,拦截器)
  • 托管 Beans [来自托管 bean 规范]
  • CDI(CDI 风格的托管 bean [几乎所有带有 beans.xml 的档案中的类],装饰器)
  • Java EE 平台(主类(静态)[应用程序客户端],登录回调处理程序)
于 2012-06-20T16:20:13.267 回答
0

您是否知道任何 Java 类都可以通过编写符合MBean 规范来成为托管 bean 。

您的问题要求 Java EE 中的“当前托管 bean 列表”。所以简短的回答是“这取决于您正在运行的应用程序是否正在注册 MBean”。您可以针对您的 JVM 运行 JMX 客户端(例如MX4J)以找出注册了哪些 bean。

我为平台 MBean提供的链接描述了一些默认情况下在您的 JVM 中可用的内容。

于 2012-06-20T15:19:29.590 回答