亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Inhaltsverzeichnis
Wie verwende ich EJB in Java Works?
Beispiele zur Implementierung von EJB in Java
Beispiel #3
Fazit
Heim Java javaLernprogramm EJB in Java

EJB in Java

Aug 30, 2024 pm 04:22 PM
java

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:

EJB in Java

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!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Laravel Raw SQL Abfrage Beispiel Laravel Raw SQL Abfrage Beispiel Jul 29, 2025 am 02:59 AM

Laravel unterstützt die Verwendung nativer SQL -Abfragen, aber die Parameterbindung sollte bevorzugt werden, um die Sicherheit zu gew?hrleisten. 1. Verwenden Sie db :: select (), um Auswahlabfragen mit Parameterbindung auszuführen, um die SQL -Injektion zu verhindern. 2. Verwenden Sie db :: update (), um Aktualisierungsvorg?nge durchzuführen und die Anzahl der betroffenen Zeilen zurückzugeben. 3.. Verwenden Sie db :: Insert (), um Daten einzufinden. 4. Verwenden Sie db :: delete (), um Daten zu l?schen; 5. Verwenden Sie db :: Anweisung (), um SQL -Anweisungen ohne Ergebniss?tze wie Erstellen, Alter usw. auszuführen; 6. Es wird empfohlen, in QueryBuilder in der Lage zu verwenden, native Ausdrücke zur Verbesserung der Sicherheit zu kombinieren, um die Sicherheit zu verbessern

Einheitstests und Verspottung in Java mit Junit 5 und Mockito Einheitstests und Verspottung in Java mit Junit 5 und Mockito Jul 29, 2025 am 01:20 AM

Verwenden Sie JUNIT5 und Mockito, um Abh?ngigkeiten für Unit -Tests effektiv zu isolieren. 1. Erstellen Sie ein Mock -Objekt über @mock, @InjectMocks injizieren die getestete Instanz, @extendWith erm?glicht die Mockito -Erweiterung. 2. verwenden Sie, wenn (). Thatreturn (), um das Simulationsverhalten zu definieren, verifizieren (), um die Anzahl der Methodenaufrufe und Parameter zu überprüfen. 3. kann die Ausnahmszenarien simulieren und die Fehlerbehandlung überprüfen; 4.. Konstruktorinjektion empfehlen, übersimulierung vermeiden und die Testeratomizit?t beibehalten. 5. Verwenden Sie Assertall (), um Behauptungen zusammenzuführen, und @Nested organisiert die Testszenarien, um die Wartbarkeit und Zuverl?ssigkeit der Tests zu verbessern.

Gehen Sie mit Beispielgenerika Gehen Sie mit Beispielgenerika Jul 29, 2025 am 04:10 AM

Go Generics werden seit 1.18 unterstützt und zum Schreiben von generischen Code für Typ-Safe verwendet. 1. Die generische Funktion printslice [tany] (s [] t) kann Scheiben jeglicher Art drucken, z. B. [] int oder [] String. 2. Durch die Typenbeschr?nkungsnummer begrenzt t auf numerische Typen wie int und float, summe [tNumber] (Slice [] t) T Safe Summation wird realisiert. 3. Die generische Struktur -TypBox [tany] struct {valuet} kann jeden Typwert in Einklang bringen und mit dem NewBox [Tany] (VT)*Box [t] Constructor verwendet werden. 4. Set (vt) hinzufügen und () t () t zum Boxen [t] ohne boxen

CSS-Tabellen-Layout feste Beispiel CSS-Tabellen-Layout feste Beispiel Jul 29, 2025 am 04:28 AM

TABLE-LAYOUT: Behoben erzwingt die Tabellenspaltenbreite, die durch die Zellbreite der ersten Zeile bestimmt wird, um den Inhalt zu vermeiden, der das Layout beeinflusst. 1. Set Table-Layout: Behoben und geben Sie die Tabellenbreite an; 2. Setzen Sie das spezifische Verh?ltnis der Spaltenbreite für die erste Zeile th/td; 3. Verwenden Sie den wei?en Raum: Nowrap, überlauf: versteckt und textüberfluss: Ellipsis zum Steuerung des Textüberlaufs; 4. Für Hintergrundverwaltung, Datenberichte und andere Szenarien, die ein stabiles Layout und eine Hochleistungsrendern erfordern, die das Layout-Jitter effektiv verhindern und die Renderneffizienz verbessern k?nnen.

Python JSON l?dt Beispiel Python JSON l?dt Beispiel Jul 29, 2025 am 03:23 AM

JSON.Loads () wird verwendet, um JSON -Zeichenfolgen in Python -Datenstrukturen zu analysieren. 1. Die Eingabe muss eine in doppelte Zitate eingewickelte Zeichenfolge sein und der boolesche Wert ist wahr/falsch. 2. unterstützt die automatische Konvertierung von Null → Keine, Objekt → DICT, Array → Liste usw.; 3. Es wird oft verwendet, um JSON -Zeichenfolgen zu verarbeiten, die von der API zurückgegeben werden. Auf Response_String kann beispielsweise nach der Parsen von JSON.Loads () direkt zugegriffen werden. Bei der Verwendung müssen Sie sicherstellen, dass das JSON -Format korrekt ist, andernfalls wird eine Ausnahme ausgel?st.

Indexierungsstrategien für MongoDB Indexierungsstrategien für MongoDB Jul 29, 2025 am 01:05 AM

ChoosetheApprotedeIntexTe -basedonusecase, SuchAssinglefield, Compound, Multikey, Text, Geospatial, orttlindexes.2.ApplyTheesrRuewhencreatedCompoundIndexesByorderingfieldsasequalit?t, Sorte

Ein Entwicklerleitfaden für Java Project Management zu Maven für Java Ein Entwicklerleitfaden für Java Project Management zu Maven für Java Jul 30, 2025 am 02:41 AM

Maven ist ein Standardwerkzeug für Java -Projektmanagement und -aufbau. Die Antwort liegt in der Tatsache, dass Pom.xml verwendet wird, um Projektstruktur, Abh?ngigkeitsmanagement, Konstruktionslebenszyklusautomation und Plug-in-Erweiterungen zu standardisieren. 1. Verwenden Sie POM.xml, um Gruppen, Artefaktid, Version und Abh?ngigkeiten zu definieren; 2. Master -Kernbefehle wie MVNClean, Compile, Test, Paket, Installation und Bereitstellen; Fn. V. 5.

Python Pass für Referenzbeispiel Python Pass für Referenzbeispiel Jul 29, 2025 am 12:31 AM

In Python ist die übertragung von Funktionsargumenten "Objektreferenz", dh für ver?nderliche Objekte (wie Listen und W?rterbücher), in-situ-Modifikationen (z. B. Anhang, Zuweisungsscheibe) innerhalb der Funktion wirkt sich direkt auf das ursprüngliche Objekt aus. 2. Für unver?nderliche Objekte (wie Ganzzahlen, Zeichenfolgen) kann das ursprüngliche Objekt in der Funktion nicht ge?ndert werden, und die Neuzuweisung erzeugt nur ein neues Objekt. 3. Die Parameter passieren eine Kopie der Referenz. Wenn die Variable in der Funktion (z. B. LST = [...]) wiederhergestellt wird, wird die Verbindung mit dem ursprünglichen Objekt nicht beeinflusst und die externe Variable nicht betroffen. Das ?ndern ver?nderlicher Objekte wirkt sich daher auf die ursprünglichen Daten aus, w?hrend unver?nderliche Objekte und Neuzuweisungen dies nicht tun, was erkl?rt, warum die Liste nach der Modifikation innerhalb der Funktion extern sichtbar ist, w?hrend die Zahlung von Ganzzahl nur lokal sind.

See all articles