5

我一直在尝试了解 WebSphere Commerce 中的 Java bean,但我真的很困惑。请帮帮我。我需要知道:

, 和有什么区别EntityBean,它们如何比较?SessionBeanDataBeanAccessBean


尽管我发现了 Session 和 Entity 之间以及 Access 和 Data 之间的区别,但我无法理解它们是如何相互关联的。

所有的帮助将不胜感激。

4

2 回答 2

6

实体 bean 表示一个由 EJB 规范编码的 java bean,这个 java 类用于标识表中的记录。Session bean也是遵循EJB规范的java bean;但是这个 bean 可以被认为等同于一个 java 类,它具有与实体 bean(即 DB 数据)交互或不交互的业务逻辑。因此,Session bean 例如 ProcessRegistrationBean 将作用于实体 bean,例如 PersonBean。

现在,关于什么是 access 和 databean 问题的第二部分:这两个 bean 是 Websphere 应用程序提供的实体 bean 的扩展,提供对实体 bean 的方便访问,隐藏了 JNDI 查找的复杂性和 EJB 规范的 home/remote 接口方法.
这意味着如果您想获取用户的信息,您可以轻松地通过它的无参数构造函数创建 UserAccessBean(从用户的实体 bean 生成),然后通过设置用户 ID 进行初始化。幕后的 AccessBean 使用 home 接口来访问远程接口,所有这些 EJB 东西在您不需要明确知道它们的情况下发生 - 因此使开发人员更容易。

Databean 是其相应访问bean 的扩展,即UserDataBean 扩展了UserAcessBean。

AccesBean 的建议使用在java 层,例如SessionBean(这也意味着您不必直接处理实体bean)和JSP 层中的DataBean。这就是所有这些相关的方式

于 2014-03-20T03:16:23.810 回答
0

在 Java 中,几乎所有类都称为 bean。所以不要混淆。您展示的不同 bean 术语是类在您的应用程序中具有的功能的概念。

通常实体 bean 代表您的域的某个实体。一个用户、一本书、一辆车或任何东西。通常有一些属性(名字、姓氏等)。您的领域的抽象(或概念)对象。不幸的是,在 EJB 中,实体 bean 是作为域对象的业务控制器来处理域对象可能涉及的所有复杂操作(例如创建具有依赖关系的新书、销售书、订单簿以及您的域允许对书做的任何事情)。您的所有用例。

域对象本身(一本书)及其属性(标题、ISBN 编号、价格、页数)由一个数据 bean 表示,它通常映射到一些数据库表和行。

会话 bean 通常是某种容器,用于存储绑定到用户会话的信息(因此具有一定的生命周期,因为用户会话将过期)。这可能是信息,如果用户已通过身份验证或用户当前正在编辑哪些数据。因此会话 bean 应该有一个指向代表用户核心数据的实体 bean 的指针。

访问 bean 似乎是“数据访问对象/DAO”模式的一些克隆。这是应用程序范围的类,允许您通过提供诸如“getUserByUsername”之类的方法或查找用于不同搜索的方法来访问实体,并封装访问数据库和其他存储。

于 2014-03-19T12:08:10.853 回答