2010-11-28 15 views
12

Ich brauche etwas Klärung. Ich weiß, wie man mit JSF und den entsprechenden Session-Beans arbeitet, aber ich werde mit EJB verwirrt. Was ist der Unterschied zwischen den Beans, die mit EJB eingeführt werden, und den Session-Beans, die mit JSF verwendet werden (für ejb kenne ich die Stateless-/Full-Session-Beans und Entity-Beans, Entity Manager usw.). Was ich gerade nicht bekomme, ist, wann man EJB benutzt und wann man jsf Bohnen benutzt. Abgesehen von den Entity-Beans scheinen die ejb-stateful/less-Session-Beans den jsf-Session-Beans ähnlich zu sein. Ich habe über injection ejb in jsf gelesen, aber warum nicht einfach ejb in Verbindung mit jsf bohnen verwenden? Ich hoffe du verstehst meine Verwirrung. Vielen Dank.Unterschied zwischen JSF Bohnen und EJB Bohnen

Antwort

6

Es gibt tatsächlich einige Verwirrung zwischen den verschiedenen Arten von verwalteten Beans in Java EE. Um die Verwirrung zu erhöhen, hat Java EE 6 eine dritte Art von Managed Bean eingeführt: eine CDI-Bean.

In dieser Antwort, die ich versuche, die Unterschiede zu erklären und Ähnlichkeiten ein wenig: How do CDI and EJB compare? interact?

Kurz gesagt, JSF Managed Beans für Transaktionen in erster Linie bietet keine Unterstützung, die etwas, das Sie oft brauchen, ist, wenn sie mit Business-Logik zu arbeiten und besonders JPA.

Beachten Sie auch, dass der Begriff session wie in der Sitzung Bereich verwaltete Bohnen ist eine völlig andere Art von Sitzung als der Begriff in Stateless und Statefull Session Beans bezieht sich auf.

7

Alexis

Als erstes müssen Sie den Unterschied zwischen JSF Bean und EJB Bohnen kennen.

JSF-Bean: JSF-Beans sind Pojo-Klassen, die verwendet wurden, um den Komponentenwert von jsf zu lesen. Es gibt zwei Arten von Bohnen in JSF

Managed Bean ist etwa wie eine Java-Bean erstellt und initialisiert wird. Wie Sie wissen, verwendet jsf das träge Initialisierungsmodell. Dies bedeutet, dass die Bean in dem bestimmten Bereich nicht in dem Moment erstellt und initialisiert wird, in dem der Bereich gestartet wird, sondern auf Anforderung, d. H. Wenn die Bean zum ersten Mal benötigt wird.

Backing Bean ist die Rolle, die eine bestimmte verwaltete Bean spielt. Dies ist eine Rolle als serverseitige Repräsentation der auf der Seite befindlichen Komponenten. Normalerweise haben die Backing-Beans einen Anforderungsbereich, aber dies ist keine Einschränkung.

EJB Bean ist eine serverseitige Komponente, die die Geschäftslogik einer Anwendung kapselt. Die Geschäftslogik ist der Code, der den Zweck der Anwendung erfüllt.

vor allem gibt es drei Arten von Session beans-

1.Statefull SessionBean

2.Stateless SessionBean

3.Singleton Session Bean (EJB 3.1)

-1

Es gibt eine weitere gute Antwort auf der Seite, wo die Unterschiede von CDI und EJB erklärt werden. Es hilft sehr, wenn Sie endlich das ganze Bild erfassen. Where to use EJB 3.1 and CDI?