2014-03-19 17 views
5

我一直在尝试了解WebSphere Commerce中的Java bean,但是我非常困惑。请帮助我。我需要知道:EntityBean,SessionBean,databean和accessbean

是什么EntityBeanSessionBeanDataBeanAccessBean以及他们如何比较有什么区别?


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

所有的帮助将非常感谢。

回答

0

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

实体bean通常代表您的域的某个实体。一位用户,一本书,一辆汽车或任何一个。通常有一些属性(名字,姓氏等)。您的域的抽象(或概念)对象。 不幸的是,在EJB中,实体bean是指域对象的商务控制器,用于处理域对象可能涉及的所有复杂操作(如创建具有依赖项的新书,出售书籍,订单簿以及您的域允许使用书)。你所有的用例。

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

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

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

+0

谢谢SCI这真的是一个很好的解释,但我有一个问题如果在EJB“实体bean的意思是一个商务控制器”,并处理所有复杂的动作,那么它的豆会话bean只是用于身份验证用户? –

+0

我认为这两种对象的主要区别在于生命周期(也是持久数据的生命周期)。会话bean绑定到应用程序的用户前面。在某个时候会话将被丢弃。这是一个绑定到用户的临时实例(webshop basklet将是另一个示例)。具有处理诸如“买书”之类的复杂行为的方法的商业控制器是持久的并且存在于整个应用的生命周期中,并且通常不被绑定到用户(但可以具有用户数据作为参数)。 – SCI

5

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

现在,关于什么是访问和databean的问题的第二部分:这两个bean是由Websphere应用程序提供的实体bean的扩展,提供了对隐藏JNDI查找和家庭/远程接口复杂性的实体Bean的方便访问EJB规范的方法。
这意味着如果你想得到一个用户的信息,你可以很容易地做到这一点,只需创建UserAccessBean(由用户的实体bean生成),通过它没有arg构造函数,然后通过设置用户ID进行初始化。后台的AccessBean使用home接口来访问远程接口,并且所有这些EJB都会发生,而不需要明确地知道它们 - 因此使开发人员更容易。

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

AccesBean的建议用途是在Java层,例如SessionBean(这也意味着你不必直接处理实体bean)和JSP层的DataBean。这是如何所有这些都是相关的

相关问题