1. Was ist EJB?
EJB (Enterprise Java Beans) ist eine kommerzielle Anwendungstechnologie in Javaee und eine der drei Hauptkomponenten von Javaee (Servlet, JSP, EJB). EJB bietet einen Rahmen für die Verwendung von Remote-verteilten Objekten, wodurch die Entwicklung von Anwendungen auf Unternehmensebene mit guter Skalierbarkeit erheblich vereinfacht wird. Die EJB -Komponentenstruktur ist eine verteilte Computerstruktur, die auf Komponenten basiert und eine Komponente in einem verteilten Anwendungssystem ist.
EJB ist eine Spezifikation des Java Server-Side-Service-Frameworks und definiert eine technische Spezifikation für das serverseitige Komponentensystem. Diese Spezifikation kann eine standardmäßige, verteilte, objektorientierte Architektur liefern. Es blockiert komplexe funktionale Implementierungen auf Systemebene auf Systemebene für Komponentenentwickler und-Benutzer, sodass Entwickler sich auf die Implementierung der Geschäftslogik konzentrieren können, und einige der komplexen zugrunde liegenden Dienste sind für EJB-Container verantwortlich. EJB kann entsprechend dem Wachstum der Anwendung erweitert werden, und der EJB -Server bietet Lastausgleichsfunktionen sowie Ressourcenzugriffskontrolle.
2. Kommunikation zwischen EJB -Container und Komponenten
EJB -Container bieten eine Betriebsumgebung für EJB -Komponenten. Die Art und Weise, wie EJB -Container EJBs verwalten, ähnelt der Verwaltung von Webcontainern. EJBs müssen in EJB -Behältern laufen. EJB -Container verwalten die EJB -Persistenz, das Lebenszyklusmanagement, das Sicherheitsmanagement, das Transaktionsmanagement, die Remoteverbindung, die gleichzeitige Verarbeitung, das Clustering und das Lastausgleich. Container verwaltet Instanzen von EJB -Komponenten und ermöglicht es EJB -Komponenten, maximale Leistung und Speicherauslastung zu erzielen. Der Container kann EJB-Komponenten aktivieren und passivieren, Instanzpools usw. verwalten usw. Die Container sind für die Verwaltung komplexer Probleme der verteilten Transaktionsverarbeitung, die Verwaltung von Kommunikationsproblemen auf niedrigem Niveau für Remoteverbindungen und die Verschleierung von Kommunikationsproblemen für EJB-Komponentenentwickler und Kunden verantwortlich. Daher können sich EJB -Komponentenentwickler auf die Einkapselung der Geschäftslogik konzentrieren, und Container sind für den Umgang mit allen anderen Transaktionen verantwortlich. EJB interagiert mit Behältern durch Mechanismen wie EJBContent, Jndj, Rückruffunktionen.
JBoss ist ein Container und Server, der EJB verwaltet, die Spezifikationen von EJB1.1, EJB2.0 und EJB3 unterstützt und im Allgemeinen an Tomcat oder Steg gebunden ist.
Siehe Abbildung 1 (das Arbeitsschema des EJB -Containers):
Abbildung 1: Arbeitsprinzip des EJB -Containers
Eine EJB -Komponente ist ein verteiltes Objekt, das beim Instanziieren mit Anwendungen in anderen Adressräumen kommunizieren kann. Die EJB -Instanz wird in einem Skelettobjekt verkapselt, das über ein Stub -Objekt mit dem Kunden kommuniziert. Der Stub enthält keine Geschäftslogik, sondern implementiert eine Geschäftsschnittstelle. Immer wenn eine kommerzielle Methode auf der STUR -kommerziellen Schnittstelle aufgerufen wird, sendet der Stub eine Netzwerknachricht an das Framework und teilt ihm mit, welche Methoden er aufgerufen hat. Das Framework ruft die entsprechende Methode der EJB -Instanz auf und sendet die von der EJB -Instanz zurückgegebenen Ergebnisse an den Stub, und der Stub gibt diese Ergebnisse an die entsprechende Anwendung zurück. Durch die beiden Zwischenobjekte, Stubs und Frameworks wird der komplexe Kommunikationsprozess zwischen verteilten Objekten blockiert. Das Framework wird von Containern implementiert, während die Stubs automatisch von Entwicklungstools generiert werden, von denen keiner Schreibcode erfordert. Siehe Abbildung 2 (EJB -Komponentenkommunikationsschema):
Abbildung 2: Kommunikationsprinzip zwischen EJB -Komponenten
3.. EJB -Klassifizierung
EJB-Komponenten können in zwei Typen unterteilt werden: Sitzungsbean und Nachrichtenbuße. Die Sitzungsbean verkauft die Geschäftslogik. Der Client kann die Sitzungs -Bean -Methoden über lokale, Remote- und Webdienste anrufen, um auf die auf dem Server bereitgestellten Anwendungen zuzugreifen, wodurch die Methoden anderer Beans aufgerufen werden. Die Sitzungsbean ist nicht hartnäckig, dh ihre Daten werden in der Datenbank nicht gespeichert. Unter ihnen umfasst die Sitzungsbean drei Arten: staatliche Sitzungsbohnen, staatenlose Sitzungsbohnen und einteilige Sitzungsbohnen. Messebedingten Beans werden häufig als Hörer für bestimmte Arten von Nachrichten verwendet, sodass Javaee asynchrone Nachrichten verarbeiten kann, und Clients greifen nicht über Schnittstellen auf die meldungsgetriebenen Bohnen zu.
Im Folgenden wird die staatliche Sitzungsbean, die staatslose Sitzungsbean, die einteilige Sitzungsbean und die meldungsgetriebene Sitzungsbean der Reihe nach vorgestellt.
4 ..
Staatenlose Sitzungsbohnen bieten nur eine Geschäftslogik für Kunden und behalten den Sitzungsstatus nicht für Kunden. Wenn der Client die Methode einer staatenlosen Sitzungsbean aufruft, beschreiben die Eigenschaften der entsprechenden Sitzungsbean den Anrufstatus, behalten diesen Status jedoch nur während des Methodenaufrufs bei. Wenn der Methodenaufruf abgeschlossen ist, wird der Staat gelöscht.
Der Lebenszyklus einer staatenlosen Sitzungsbohne wird vom Container gesteuert. Wenn der EJB -Container die Anfrage eines Clients für eine staatenlose Sitzungs -Bean erhält, erstellt der Container eine Instanz der Bean, in die erforderliche Ressourcen in die Komponente ein und dann der Container ruft die Postkonstruktion zurück, und die Komponente wird erstellt. Zu diesem Zeitpunkt wechselt die Bohnen vom Zustand "nicht existieren" zum "Existenz" -Staat. Wenn der Client -Anruf beendet ist, ruft der Container die Prädestroy -Methode zurück und die Bohne wird zerstört. Zu diesem Zeitpunkt wird die Bohne vom "existierenden" Zustand in den "nicht existierenden" Zustand umgewandelt. Siehe Abbildung 3 (Der Lebenszyklus einer staatenlosen Sitzungsbohne):
Abbildung 3: Lebenszyklus einer staatenlosen Sitzungsbohne
5. Staatliche Sitzungsbohne
Eine staatliche Sitzungsbean behält einen Sitzungsstatus für den Benutzer. Es kann nicht in den Komponentenpool platziert werden, damit verschiedene Benutzer wie eine staatenlose Sitzungsbohne teilen können. Für eine staatliche Sitzungsbean erstellt der Container, solange ein Kunde eine Anfrage sendet, eine Instanz, die dem Client entspricht, und ein Client entspricht einer Instanz. Während des Lebens führt die staatliche Sitzungsbean die Informationen des Benutzers, und sobald die Sitzung endet, endet auch der Lebenszyklus der staatlichen Sitzungsbean.
Eine staatliche Sitzungsbean hat drei aktive Staaten: Nicht-Existenz, Aktiv und Passivierung. Wenn die staatliche Sitzungsbean über einen bestimmten Zeitraum aktiv ist, wird der Container die staatlichen Informationen in der statenden Sitzungsbohne in den temporären Speicherplatz serialisieren, wenn die Anfrage des externen Kunden noch nicht empfangen wird, um Systemressourcen zu sparen, und die staatliche Sitzungsbean aus dem Speicher entfernen. Dieser Prozess wird als "Passivierung" bezeichnet. Der Container ruft vor der Passivierung die prepassive Methode zurück. Wenn der Container eine Anfrage für eine staatliche Sitzungsbean erhält, die passiviert wurde, initialisiert er die Instanz der staatlichen Sitzungsbohne neu und nimmt die Statusinformationen aus dem temporären Raum heraus, um ihn an den aktiven Zustand zurückzugeben. Dieser Prozess wird als "Aktivierung" bezeichnet. Nach der Aktivierung ruft der Container die proaktivierte Methode zurück. Wenn die staatliche Sitzungsbohnen für einen bestimmten Zeitraum hindert, löscht der Container die Instanz vollständig und ruft die Prädestroy -Methode zurück. Siehe Abbildung 4 (Der Lebenszyklus einer staatlichen Sitzungsbohne):
Abbildung 4: Lebenszyklus einer staatlichen Sitzungsbohne
6. Einzimmersitzungsbohne
Eine einteilige Sitzungsbohne wird für jede Anwendung einmal instanziiert und ist im gesamten Lebenszyklus der Anwendung immer vorhanden. Eine einteilige Sitzungsbean ist für bestimmte Szenarien ausgelegt, und Kunden können in einem gemeinsam genutzten und gleichzeitigen Modus auf diese eindeutige EJB-Instanz zugreifen.
Eine einteilige Sitzungsbean ähnelt einer staatenlosen Sitzungsbohne sehr. Der Unterschied besteht darin, dass eine einteilige Sitzungsbean nur eine Instanz in der Anwendung hat, während eine staatenlose Sitzungsbean viele Instanzen haben kann. Jede Instanz wird im Komponentenpool platziert, mit dem Benutzer teilen können.
Eine einteilige Sitzungsbean ist wie eine staatenlose Sitzungsbohne, die nie passiviert ist. Sein Lebenszyklus enthält nur zwei Arten von Körpern: "Nicht-Existenz" und "Existenz". Siehe Abbildung 5 (Der Lebenszyklus einer einteiligen Sitzungsbohne):
Abbildung 5: Lebenszyklus einer einteiligen Sitzungsbohne
7. Nachrichtengetriebene Bohne
Nachrichtenbetriebene Beans sind Komponenten, die speziell für meldungsbasierte Anforderungen ausgelegt sind. Nachrichtenbetriebene Bohnen integrieren die Funktionen des Java Message Service (JMS) und Enterprise Beans. Der Client kann seine Referenz nicht direkt abrufen und die Methode aufrufen, kann aber nur von Systemnachrichten gestartet werden.
EJB-Container erzeugen normalerweise einen Komponentenpool von messagebedingten Bohnen. Ähnlich wie bei staatenlosen Sitzungsbohnen werden meldungsgetriebene Bohnen niemals passiviert, und ihr Lebenszyklus enthält nur zwei Stufen: Nicht-Existenz und Existenz.
Die von Nachrichten gesteuerte Bean-Klasse muss die Messagelistener-Schnittstelle implementieren. Wenn der Container eine Nachricht in der Warteschlange erkennt, dass die Bean zuhört, ruft sie die OnMessage () -Methode auf und übergibt die Nachricht als Parameter.
Das obige umfassende Verständnis des grundlegenden EJB von J2EE ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.