实体Bean,会话Bean,数据bean和访问bean

时间:2014-03-19 10:15:37

标签: java java-ee ejb javabeans websphere-commerce

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

  

EntityBeanSessionBean之间有什么区别,   DataBeanAccessBean以及他们如何比较?


虽然我发现了Session和Entity之间以及Access和Data之间的区别,但我不明白它们是如何相互关联的。

非常感谢所有的帮助。

2 个答案:

答案 0 :(得分: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查找和home / remote接口方法的复杂性EJB规范。
这意味着如果您想获取用户的信息,您可以轻松地通过它的no arg构造函数创建UserAccessBean(由用户的实体bean生成),然后通过设置初始化用户ID。幕后的AccessBean使用home接口访问远程接口,所有这些EJB的东西都发生了,你无需明确地知道它们 - 因此让开发人员更容易。

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

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

答案 1 :(得分:0)

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

通常,实体bean代表您域的某个实体。用户,书籍,汽车或任何东西。通常有一些属性(名字,姓氏等)。域的抽象(或概念)对象。 遗憾的是,EJB实体bean是一个域对象的业务控制器,用于处理域对象可能涉及的所有复杂操作(例如创建具有依赖关系的新书,销售书籍,订单簿以及您的域允许对书籍执行的任何操作) )。所有用例。

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

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

访问bean似乎是"数据访问对象/ DAO"上的一些克隆。图案。这是应用程序范畴,允许您通过提供类似" getUserByUsername"等方法来访问实体。或查找不同搜索的方法并封装访问数据库和其他存储。