了解托管bean /支持bean

时间:2011-09-23 13:53:25

标签: java jsf java-ee ejb

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

我在理解它时遇到了一些麻烦。什么是Managedbeans?它只是保持组件状态的对象吗?他们也可以有其他方法吗? EJB适合哪里?托管bean是否在EJB上调用了方法?

2 个答案:

答案 0 :(得分:14)

  

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

JSF Managed bean就像任何其他Java bean一样,除非它由JSF管理。换句话说,它是一个由JSF根据需要创建和销毁的bean。

Hortsman Core JSF 2书状态。

JSF实现执行以下操作:

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

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

    是的,他们可以拥有您想要的尽可能多的方法。但是您希望(并且应该)尽可能地让您的托管bean尽可能精简。例如,它可能有搜索方法,但您不应该实际搜索在此方法中,但此搜索方法的唯一目的应该是将任务委派给业务层(可能是基于EJB,也可能不是基于EJB)。
    我用其他词语没有举重

      

    EJB适合哪里?

    EJB是您的业务层,它们有很大的二头肌并且可以完成所有繁重的任务。自从引入EJB3 JPA以来,它也是EJB的一部分。然而,JPA是持久层。除JPA之外的所有EJB都在EJB容器内部运行。所有Java EE投诉服务器都提供这些。

    在一个典型的3层体系结构中(但是现在它大多数超过3层,但3层更容易解释.JSF是您的Web层,EJB是您的业务层,JPA也是EJB规范的一部分但不是需要EJB容器是您的ORM或持久层。 不要太担心单词容器,你会很快习惯它,很少你会担心它。如果您使用的是Java EE服务器,则可以为您安装。

      

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

    是的,如上所述。这里所有的重物。但是,不必将EJB与JSF一起使用。你可以使用任何其他框架,例如Spring,或者甚至可以编写简单的pojos,但那是另一个讨论领域。

答案 1 :(得分:0)

从此链接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是JavaBeans,主要用于提供UI逻辑以及管理Web层和应用程序业务层之间的数据(类似于数据传输对象)。通常,每个JSF页面都有一个支持bean。 backing bean包含页面上使用的UI组件的逻辑和属性。

     

<强> NB:

     

要使应用程序启动时可用的辅助bean,您就可以了   将其注册为具有名称和范围的托管bean