【问题标题】:Understanding managed beans/backing beans [duplicate]了解托管bean/支持bean [重复]
【发布时间】:2011-11-23 17:01:23
【问题描述】:

我正在学习 Java EE 6,并试图掌握它的整体形象。我正在阅读有关 JSF 以及如何添加组件的信息。我正在将组件中的值设置/读取到具有 @ManagedBean 注释的 bean。

我无法正确理解它。什么是托管豆?它只是保存组件状态的对象吗?他们也可以有其他方法吗? EJB 适合哪里?托管 bean 是否调用 EJB 上的方法?

【问题讨论】:

    标签: java jsf jakarta-ee ejb


    【解决方案1】:

    什么是托管豆?它只是持有状态的对象吗? 组件?

    除了由 JSF 管理之外,JSF 托管 bean 与任何其他 Java bean 一样。换句话说,它是由 JSF 根据需要创建和销毁的 bean。

    Hortsman Core JSF 2 图书状态。

    JSF 实现执行以下操作:

    1. 根据需要创建和丢弃 bean(因此术语“托管 豆子”)
    2. 显示网页时读取 bean 属性
    3. 在发布表单时设置 bean 属性

    他们也可以有其他方法吗?

    是的,他们可以拥有尽可能多的方法。但是,理想情况下,您希望(并且应该)让托管 bean 尽可能精简。例如,它可能具有搜索方法,但您不应该进行实际搜索在此方法中,但此搜索方法的唯一目的应该是将任务委托给业务层(可能基于也可能不基于 EJB)。
    换句话说没有繁重的工作

    EJB 适合哪里?

    EJB 是您的业务层,他们的二头肌很大,可以承担所有繁重的工作。由于引入了 EJB3 JPA,这也是 EJB 的一部分。然而,JPA 是持久层。除 JPA 之外的所有 EJB 都在 EJB 容器中运行。所有 Java EE 投诉服务器都提供这些 .

    在典型的 3 层架构中(现在它大多超过 3 层,但 3 层更容易解释。JSF 是您的 Web 层,EJB 是您的业务层,JPA 也是 EJB 规范的一部分,但不是需要 EJB 容器是您的 ORM 或 Persistence 层。 不要太担心单词容器,你会很快习惯它,很少你会担心它。如果您使用的是 Java EE 服务器,那么一切都已为您设置好了。

    托管 bean 是否调用 EJB 上的方法?

    是的,如上所述。所有繁重的工作都在这里。但是,将 EJB 与 JSF 一起使用并不是强制性的。您可以使用任何其他框架,例如 Spring,甚至可以编写简单的 pojo,但这是另一个讨论领域。

    【讨论】:

    • 谢谢,正是我想知道的。很好的答案:)
    【解决方案2】:

    从此链接JSF - Managed Beans

    托管 Bean:

    Managed Bean 是向 JSF 注册的常规 Java Bean 类。也就是说,Managed Beans 是一个由 JSF 框架管理的 java bean。

    从此链接Creating and Using a Backing Bean for a Web Page

    支持 Bean:

    在 JSF 中,支持 bean 是 JavaBean,主要用于提供 UI 逻辑和管理 Web 层和应用程序的业务层之间的数据(类似于数据传输对象)。通常每个 JSF 页面都有一个支持 bean。支持 bean 包含页面上使用的 UI 组件的逻辑和属性。

    注意:

    为了在应用程序启动时可用的支持 bean,您 将其注册为具有名称和范围的托管 bean

    【讨论】:

      猜你喜欢
      • 2012-06-03
      • 2012-01-17
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多