EntityBean,SessionBean,databean和accessbean

Jus*_*per 5 java ejb websphere-commerce javabeans java-ee

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

是什么区别EntityBean,SessionBean, DataBeanAccessBean以及他们如何比较?


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

所有的帮助将非常感谢.

kbk*_*kbk 6

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

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

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

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


SCI*_*SCI 0

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

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

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

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

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