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.
Im Folgenden finden Sie die genannten Beispiele:
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 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(); } }
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.
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!