何时在Websphere Commerce中使用访问bean或数据bean?

时间:2012-11-15 12:42:56

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

何时在Websphere中使用数据bean或访问bean是否合适?如果我问基本问题,我很抱歉,我是Websphere的新手。

就我而言,我正在尝试按产品查找目录列表。最初我一直在使用访问bean。这有效,但它有时会返回非常大的结果集/似乎非常耗费内存。

CatalogEntryDescriptionAccessBean cedabp = new CatalogEntryDescriptionAccessBean();
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong);

数据bean提供了相同的方法:

CatalogEntryDescriptionDataBean cedabp = new CatalogEntryDescriptionDataBean();
Enumeration cde = cedabp.findByCatalogEntry(productCatIdLong);

为什么我会使用一个bean而不是另一个?是否更适合读取或写入数据?一个缓存/更多的数据提供的数据是否比另一个更快?

更新

我发现这两个类有以下关系:

CatalogEntryDescriptionAccessBean
|_ CachedCatalogEntryDescriptionAccessBean
  |_ CompactCatalogEntryDescriptionAccessBean
    |_ CatalogEntryDescriptionDataBeanBase
      |_ CatalogEntryDescriptionDataBean

因此数据Bean继承自Access Bean,因此它包含相同的可见方法。

有趣的是,IBM的文档指出:

  

访问bean提供...缓存   home对象,减少了对企业bean的调用流量。使用访问bean还有其他功能   优点:

     

在运行时,访问bean缓存企业bean主目标   因为在时间方面,仰望家庭对象是昂贵的   和资源使用。访问bean实现了一个copyHelper对象   这减少了命令时对企业bean的调用次数   获取并设置企业bean属性。只有一个电话   读取或写入多个时需要enterprise bean   企业bean属性。

目前,如果Access Bean使用CMP来减少对实体Bean的调用,我对数据Bean的用途感到困惑?

我发现了更多文档说明:

  

数据bean是在JSP页面中用于检索的Java bean   来自企业bean的信息。一个简单的数据bean扩展了它   相应的访问bean并实现SmartDataBean接口。   通过扩展访问bean,数据bean提供了一个简单的方法   实体bean的表示(间接):它封装了   可以从实体bean中检索或设置的属性。

2 个答案:

答案 0 :(得分:1)

DataBean实现了比AccessBean更多的缓存,因此可能会减少对数据库的调用。

DataBean适合在构成站点/ Web应用程序的JSP页面中使用,因为实例数量可能很少,它应该有助于控制访问数据库的事务数量。

AccessBean的内存密集程度要低得多,因此更适合循环进程等。

您通常希望在后端WebSphere命令和报告等中使用AccessBean。

答案 1 :(得分:1)

通常,您可以将数据bean与wcbase:useBean标记结合使用来设置数据bean的属性,标记将调用populate方法。这实质上是从JSP中抽象出访问bean / EJB的实例化过程。除此之外,Access bean与数据bean的功能值相似。我在jsps中的命令和数据bean中使用访问bean。