2014-03-19 48 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。這是如何所有這些都是相關的

相關問題