Ejb wird als Enterprise Java Bean Component bezeichnet, auch serverseitige Softwarekomponenten genannt; Es wird haupts?chlich als Gesch?ftslogik der Anwendungen verwendet. Die für Laufzeitumgebungen verwendeten Webcontainer umfassen die Softwarekomponenten, Computersicherheit, Servlet-Lebenszyklusverwaltung, Transaktionsverarbeitung und Webdienste. EJb ist der in den Java-Programmiersprachen geschriebene Architekturstil, der auf der Serverseite des Computernetzwerks ausgeführt wird ist bei den Anwendungen dem Client-Server-Modell gefolgt. Und au?erdem ist ejb die Java-Bean-Technologie zur Verteilung der Webkomponenten auf der Clientseite. Sie verfügt über die Funktion ?wiederverwendbare Komponenten“ in mehreren Webanwendungen.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax:
Die grundlegende Syntax des EJB-Modells in der Java-Programmierung wie folgt.
import javax.ejb.*; import java packages; class classname { Main? method() { -----Some programming logics---- } }
Die oben genannten Codes sind grundlegende Schritte zum Entwickeln der Anwendung mithilfe von EJB-Paketen.
Wie verwende ich EJB in Java Works?
- In EJB verwendet die Java-Bean-Klasse mehr als eine Annotation für die EJB-Spezifikationen, was hilfreich ist, um die Benutzeranforderungen basierend auf dem Gesch?ftszweck zu erfüllen. EJB verfügt über einen anderen Satz von Versionen und folgt der Funktion wie JNDI (Java-Benennungsverzeichnisschnittstelle). Eine der Ressourcen im JNDI-Server ist der Verzeichnisdienst, der zum Auffinden oder Zuweisen der Ressource verwendet wird, z. B. EJB-, Datenquellen- und JMS-Warteschlangendienste. Die Server haben einen Standardschemanamen für die JNDI-Ressourcen, dieser sollte jedoch überschrieben werden, wenn wir den Namen des Konfigurationsteils ?ndern.
- EJB funktioniert mit Java Beans; Es gibt zwei verschiedene Typen: 1. Session Beans und 2. Message Driven BeansSession Beans. Session-Beans werden für Client-Server-Interaktionen verwendet; Es kapselt die Gesch?ftslogik der Anwendung programmgesteuert, indem der Client-Aufruf entweder von einem lokalen Computer oder einem Remote-Computer ausgeführt wird. Die Bean wird vom Client mithilfe von Webdiensten verwendet. Session-Beans gibt es in drei verschiedenen Kategorien: 1. Stateless, 2.Stateful und 3.Singleton.Stateless Beans. Wenn der Client diese Art von Beans verwendet, gibt es in Webcontainern keinen permanenten Zustand, sodass sie im Vergleich sehr schnell threadsicher und leistungsm??ig sind zu Stateful Beans. Diese Beans werden gleichzeitig mit mehreren Clients geteilt.
- Stateful Beans k?nnen die Zust?nde in Containern speichern; Sobald der Client die Sitzung beendet, werden diese Zust?nde auch auf dem Server zerst?rt. Bei Singelton Beans gibt es eine einzelne Instanzsitzung für den gesamten Lebenszyklus dieser Anwendung. Diese Beans teilten auch die Zust?nde mit mehreren Clients. Diese Beans sind Thread-sicher, sodass Entwickler sie einfacher verwenden k?nnen und die Leistung im Vergleich zu Stateful Beans auch schneller ist.
- Message Driven Beans (MDB) ist der Bean-Typ, der wie JMS-Nachrichten-Listener als asynchroner Nachrichtentyp verwendet wird, die Nachrichtenantwort jedoch als JMS-Nachrichten anstelle der Ereignisse empf?ngt. Wir k?nnen die Nachrichten mithilfe von JNDI-Diensten zuordnen, wenn die Nachricht empfangen wird. Der Container ruft die MDB-Beans mithilfe der Methode onMessage() zur weiteren Verarbeitung auf. Der gesamte Prozess der MDB unter Verwendung der onMessage()-Methode ist eine einzige Transaktion. Wenn es sich beim Nachrichtenprozess um einen Rollback handelt, wird die Empf?ngernachricht erneut zugestellt.
Beispiele zur Implementierung von EJB in Java
Im Folgenden finden Sie die genannten Beispiele:
Beispiel #1
Schnittstelle:
package JPAEJB; import java.util.List; import javax.ejb.Remote; @Remote public interface CustomerInterface { void addBooks(String name); List getBooks(); }
Umsetzung:
import java.util.ArrayList; import java.util.List; import javax.ejb.Stateless; import JPAEJB.CustomerInterface; @Stateless public class CustomerClass implements CustomerInterface { List<String>books; public CustomerClass() { books = new ArrayList<String>(); } public void addBooks(String name) { books.add(name); } public List<String> getBooks() { return books; } }
Kundenschnittstelle:
import JPAEJB.CustomerInterface; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import java.util.Properties; import javax.naming.InitialContext; import javax.naming.NamingException; public class CustomerInterfaceImplem { BufferedReader brConsoleReader = null; Properties p; InitialContext c; { p = new Properties(); try { p.load(new FileInputStream("jndi.properties")); } catch (IOException ex) { ex.printStackTrace(); } try { c = new InitialContext(p); } catch (NamingException ex) { ex.printStackTrace(); } brConsoleReader = new BufferedReader(new InputStreamReader(System.in)); } public static void main(String[] args) { CustomerInterfaceImplem cust = new CustomerInterfaceImplem(); cust.testStatelessEjb(); } private void show() { System.out.println("Welcome to my domain"); System.out.print("Options \n1. Add the Books\n2. Exit \nEnter your Choice: "); } private void StatelessEjb() { try { intc = 1; CustomerInterface cust = (CustomerInterface)ctx.lookup("CustomerInterface/remote"); while (c != 2) { String books; show(); String str = brConsoleReader.readLine(); c = Integer.parseInt(str); if (c == 1) { books = brConsoleReader.readLine(); cust.addBooks(books); }elseif (c == 2) { break; } } List<String>books1 = cust.getBooks(); System.out.println(books1.size()); for (inti = 0; i<books1.size(); ++i) { System.out.println((i+1)+". " + books1.get(i)); } CustomerInterface cust1 = (CustomerInterface)ctx.lookup("cust/remote"); List<String>books2 = cust.getBooks(); System.out.println(books2.size()); for (inti = 0; i<books2.size(); ++i) { System.out.println((i+1)+". " + books2.get(i)); } } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { try { if(brConsoleReader !=null) { brConsoleReader.close(); } } catch (IOException ex) { System.out.println(ex.getMessage()); } } } }
Beispielausgabe:
Beispiel #2
EJB in Webdiensten:
package JPAEJB; import java.util.List; import Customers.CustomerInterfaceImplem; public class Ejbclients{ public static void main(String[] args) { for(CustomerInterface cust:getBooks()) { System.out.println(cust.getBooks()); } } private static List <CustomerInterface> getBooks() { CustomerInterfaceImplem s = new CustomerInterfaceImplem(); CustomerInterface c = s.getCustomerInterfacePort(); return c.getBooks(); } }
Beispiel #3
EJB-Sicherheit:
import javax.ejb.* @Stateless @DeclareRoles({"customer""books"}) public class CustSecurity implements CustomerInterface { @RolesAllowed({"books"}) public void delete(CustomerInterface cust) { System.out.println("customer delete the books"); } @PermitAll public void showBooks(CustomerInterface cust) { System.out.println("customer viewed the books"); } @DenyAll public void deleteAll() { System.out.println("customer delete all the books in libraries"); } }
Sicherheits-XML:
<?xml version="1.0"encoding="UTF-8"?> <!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN""http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd"> <ejb-jar> <security-role-mapping> <role-name>customer</role-name> <group-name>customer-groups</group-name> </security-role-mapping> <security-role-mapping> <role-name>Books</role-name> <group-name>Books-group</group-name> </security-role-mapping> <enterprise-beans/> </ejb-jar>
Erkl?rung: Die obigen drei Beispiele sind die gleiche Ausgabe, wir haben verschiedene Funktionen des EJB verwendet. Das erste Beispiel, das wir verwenden, der Kunde wird die Bücher mit jndi (Java Naming Directory Interface) hinzufügen und l?schen. Das zweite Beispiel, das wir verwenden Der Webdienst für den Kunden hat die Vorg?nge über das Web erledigt. Letztes Beispiel haben wir die zus?tzliche Sicherheit genutzt.
Fazit
Im Allgemeinen fungiert EJB als Schnittstelle au?erhalb von Gesch?ftslogikanwendungen. Im Vergleich zu anderen Gesch?ftslogik-Frameworks verfügt es über eine Browserkompatibilit?tsfunktion, die hinsichtlich der Sicherheit besser ist. Au?erdem werden die Transaktionen auf Systemebene verwaltet.
Das obige ist der detaillierte Inhalt vonEJB in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Ausw?hlen vononlyNeededColumnSimProvesPerformanceByRectingResourceuse.1.FetchingAllcolumnSincreasesMemory, Netzwerk und Verarbeitung von

Enums in Java sind spezielle Klassen, die eine feste Anzahl konstanter Werte darstellen. 1. Verwenden Sie die Definition der Enum -Schlüsselwort. 2. Jeder Enumswert ist eine ?ffentliche statische endgültige Instanz des Enumentyps; 3.. Es kann Felder, Konstruktoren und Methoden enthalten, um jeder Konstante Verhalten zu verleihen. 4.. Es kann in Switch-Anweisungen verwendet werden, unterstützt direkten Vergleich und liefert integrierte Methoden wie name (), ordinal (), values ??() und valueOf (); 5. Aufz?hlung kann die Sicherheit, Lesbarkeit und Flexibilit?t des Codes vom Typ verbessern und eignet sich für begrenzte Sammlungsszenarien wie Statuscodes, Farben oder Woche.

Die rationale Verwendung semantischer Tags in HTML kann die Klarheit, Zug?nglichkeit und SEO -Effekte der Seitenstruktur verbessern. 1. für unabh?ngige Inhaltsbl?cke wie Blog-Beitr?ge oder Kommentare muss sie in sich geschlossen werden. 2. für klassifizierungsbezogene Inhalte, die normalerweise Titel enthalten, ist für verschiedene Module der Seite geeignet. 3.. Wird für Hilfsinformationen im Zusammenhang mit dem Hauptinhalt verwendet, nicht jedoch Kern, wie z. B. Seitenleistenempfehlungen oder Autorprofile. In der tats?chlichen Entwicklung sollten Etiketten kombiniert und andere, überm??ige Verschachtelung vermeiden, die Struktur einfach halten und die Rationalit?t der Struktur durch Entwicklerwerkzeuge überprüfen.

JDK (JavadevelopmentKit) ist eine Softwareentwicklungsumgebung für die Entwicklung von Java -Anwendungen und -Applets. Es enth?lt Tools und Bibliotheken, die zum Kompilieren, Debuggen und Ausführen von Java -Programmen erforderlich sind. Zu den Kernkomponenten geh?ren Java Compiler (Javac), Java Runtime Environment (JRE), Java Interpreter (Java), Debugger (JDB), Tools für Dokumentgenerierung (Javadoc) und Verpackungstools (wie JAR und JMOD). Entwickler brauchen JDK, um Java -Code zu schreiben, zu kompilieren und sich mit Hilfe der IDE zu entwickeln. Ohne JDK k?nnen Java -Anwendungen nicht erstellt oder ge?ndert werden. Sie k?nnen Javac-Version und Java-Version in das Terminal eingeben

Die wichtigsten Schritte bei der Konfiguration der Java -Debugging -Umgebung auf VSCODE sind: 1. JDK installieren und überprüfen; 2. Installieren Sie JavaextesionPack und Debuggerforjava Plug-In; 3.. Erstellen und konfigurieren Sie die Datei start.json, angeben Sie MainClass und ProjectName. 4. Richten Sie die richtige Projektstruktur ein, um sicherzustellen, dass der Quellcode -Pfad und die Kompilierungsausgabe korrekt sind. 5. Verwenden Sie Debugging -Techniken wie Watch, F8/F10/F11 -Verknüpfungsschlüssel und -methoden, um mit h?ufigen Problemen wie nicht gefundenen Klassen oder JVM -Bindungsfehlern umzugehen.

Zu den Methoden, um XML -Fehler zu vermeiden, geh?ren: 1. Stellen Sie sicher, dass die Elemente korrekt verschachtelt sind. 2. Es entkommen Sonderzeichen. Richtiges Verschachteln vermeidet das Analysieren von Fehlern, w?hrend Fluchtzeichen die Korruption von Dokumenten verhindern, kann die Verwendung eines XML -Editors dazu beitragen, die strukturelle Integrit?t aufrechtzuerhalten.

Wenn die Windows -Suchleiste keinen Text eingeben kann, sind gemeinsame L?sungen: 1. Starten Sie den Explorer oder Computer neu, ?ffnen Sie den Task -Manager, um den "Windows Explorer" -Prozess neu zu starten, oder starten Sie das Ger?t direkt neu; 2. Versuchen Sie die Eingabemethode, die englische Eingangsmethode oder die eigene Eingabemethode von Microsoft zu verwenden, um Eingabemethodenkonflikte von Drittanbietern zu beseitigen. 3. Führen Sie das System -Tool des Systemdateis aus und führen Sie den Befehl sfc/scannow in der Eingabeaufforderung aus, um die Systemdateien zu reparieren. 4. Setzen oder bauen Sie den Suchindex wieder auf und bauen Sie ihn durch die "Indexoptionen" im "Bedienfeld" neu auf. Normalerweise beginnen wir zuerst mit einfachen Schritten und die meisten Probleme k?nnen Schritt für Schritt gel?st werden.

Um VSCODE für die Java -Entwicklung zu verwenden, müssen Sie die erforderlichen Erweiterungen installieren, den JDK konfigurieren und den Arbeitsbereich einrichten. 1. Installieren Sie JavaextesionPack, einschlie?lich Sprachunterstützung, Debugging -Integration, Erstellen von Tools und Code -Abschlussfunktionen; Optionales Javatestrunner oder Springboot -Erweiterungspaket. 2. Installieren Sie mindestens JDK17 und überprüfen Sie durch Java-Version und Javac-Version; Stellen Sie die Variable der java_home -Umgebungsvariable fest oder wechseln Sie mehrere JDKs in der Statusleiste am unteren Rand des VSCODE. 3. Stellen Sie nach dem ?ffnen des Projektordners sicher, dass die Projektstruktur korrekt ist, und aktivieren Sie das automatische Speichern, passen Sie die Formatierungsregeln an, aktivieren Sie die Codeüberprüfung und konfigurieren Sie die Kompilierungsaufgabe, um die ?ffnung zu optimieren.
