2014-03-19 8 views
5

Ich habe versucht, über die Java-Beans in WebSphere Commerce zu lernen, aber ich wurde wirklich verwirrt. Bitte hilf mir. Ich muss wissen:EntityBean, SessionBean, Databean und Accessbean

Was ist der Unterschied zwischen EntityBean, SessionBean, DataBean und AccessBean und wie sie zu vergleichen?


Obwohl ich den Unterschied zwischen Session und Entity gefunden, und zwischen Access und Daten, nicht ich zu verstehen, wie sie alle miteinander verwandt sind.

All die Hilfe würde sehr geschätzt werden.

Antwort

0

In Java wird fast jede Klasse eine Bohne genannt. Verwechsle das also nicht. Die verschiedenen Bean-Terms, die Sie anzeigen, sind Konzepte der Funktion, die eine Klasse in Ihrer Anwendung hat.

Normalerweise repräsentiert die Entity-Bean eine Entität Ihrer Domain. Ein Benutzer, ein Buch, ein Auto oder was auch immer. Normalerweise mit einigen Eigenschaften (Vorname, Nachname usw.). Ein abstrahiertes (oder konzeptionelles) Objekt Ihrer Domain. Leider in EJB Entity Bean ist als Business Controller für ein Domain-Objekt gemeint, das alle komplexen Aktionen behandelt, an denen ein Domain-Objekt beteiligt sein kann (wie ein neues Buch mit Abhängigkeiten erstellen, Buch verkaufen, Orderbuch und was auch immer Ihre Domain zulässt Buch). Alle Ihre Anwendungsfälle.

Das Domänenobjekt selbst (ein Buch) mit seinen Eigenschaften (Titel, ISBN-Nummer, Preis, Anzahl der Seiten) wird durch eine Data-Bean dargestellt, die normalerweise einigen Datenbanktabellen und Zeilen zugeordnet ist.

Die Session-Bean ist normalerweise eine Art Container für Informationen, die an die Sitzung eines Benutzers gebunden sind (und hat daher einen gewissen Lebenszyklus, da die Benutzersitzung abläuft). Dies kann Information sein, wenn der Benutzer authentifiziert ist oder welche Daten der Benutzer gerade bearbeitet. Daher sollte die Session-Bean einen Zeiger auf eine Entity-Bean haben, die die Kerndaten des Benutzers darstellt.

Die Access-Beans scheinen einige Klone auf dem "Data Access Object/DAO" -Muster zu sein. Hierbei handelt es sich um anwendungsweite Klassen, mit denen Sie auf Entitäten zugreifen können, indem Sie Methoden wie "getUserByUsername" bereitstellen oder Methoden für verschiedene Suchvorgänge finden und Zugriff auf Datenbanken und andere Speicher kapseln.

+0

Vielen Dank SCI das ist wirklich eine gute Erklärung, aber ich habe eine Frage Wenn in EJB "Entity Bean als Bussiness Controller gemeint ist" und alle komplexen Aktionen dann behandeln, ist es Bean Session Bean nur verwendet, um authenticater Benutzer? –

+0

Ich denke, der Hauptunterschied bei diesen beiden Objekten ist der Lebenszyklus (auch der Lebenszyklus von persistenten Daten). Die Session-Bean ist an einen Benutzer vor Ihrer Anwendung gebunden. Irgendwann wird die Sitzung verworfen. Es ist eine temporäre Instanz (ein Webshop-Basklet wäre ein anderes Beispiel), die an einen Benutzer gebunden ist. Die Business Controller, die Methoden haben, komplexe Aktionen wie "buy a book" zu handhaben, sind langlebig und existieren für den Lebenszyklus der gesamten Anwendung und sind normalerweise nicht an einen Benutzer gebunden (können aber Benutzerdaten als Parameter haben). – SCI

5

Die Entity-Bean stellt eine Java-Bean dar, die durch die EJB-Spezifikation codiert ist, und diese Java-Klasse wird verwendet, um einen Datensatz in einer Tabelle zu identifizieren. Session-Bean ist auch eine Java-Bean, die der EJB-Spezifikation folgt; aber diese Bean kann als äquivalent zu einer Java-Klasse betrachtet werden, die Geschäftslogik mit oder ohne Interaktion mit Entity-Bean (d. h. DB-Daten) aufweist. Daher wird eine Session-Bean, z. B. ProcessRegistrationBean, auf eine Entity-Bean, z. B. PersonBean, angewendet. Für den zweiten Teil der Frage, was ist Access und Databean: Diese beiden Beans sind Erweiterungen von Entity Beans von Websphere-Anwendung zur Verfügung gestellt bietet bequemen Zugriff auf die Entity-Beans versteckt die Komplexität der JNDI-Lookup und Home/Remote-Schnittstelle Methoden der EJB-Spezifikation.
Dies bedeutet, dass Sie einfach die UserAccessBean (die von Entity-Bean für den Benutzer generiert wird) erstellen können, wenn Sie die Benutzerinformationen abrufen möchten, indem Sie den arg-Konstruktor verwenden und anschließend durch Festlegen der Benutzer-ID initialisieren. AccessBean hinter den Kulissen benutzt die Home-Schnittstelle, um auf die Remote-Schnittstelle zuzugreifen, und all diese EJB-Sachen passieren, ohne dass Sie sie explizit kennen müssen - was es für den Entwickler einfacher macht.

Databean sind Erweiterungen der entsprechenden Access Beans, d. H. UserDataBean erweitert UserAcessBean.

Die vorgeschlagene Verwendung von AccesBean ist in der Java-Schicht, z. B. SessionBean (dies bedeutet auch, dass Sie nicht direkt mit Entity-Beans arbeiten müssen) und DataBean in der JSP-Ebene. Dies ist, wie alle diese sind verwandt