Ejb dilambangkan sebagai Enterprise Java Bean Component, juga dipanggil komponen perisian bahagian pelayan; ia akan digunakan terutamanya sebagai logik perniagaan aplikasi. Bekas web yang digunakan untuk persekitaran masa jalan termasuk komponen perisian, keselamatan komputer, pengurusan kitaran hayat servlet, pemprosesan transaksi dan perkhidmatan web. EJb ialah gaya seni bina yang ditulis dalam bahasa pengaturcaraan Java yang dijalankan pada bahagian pelayan rangkaian komputer, jadi ia telah mengikuti model pelayan-pelanggan dalam aplikasi. Dan juga, ejb ialah teknologi kacang java untuk mengedarkan komponen web pada bahagian pelanggan yang mempunyai ciri yang dipanggil komponen boleh guna semula dalam berbilang aplikasi web.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks:
Sintaks asas model EJB dalam pengaturcaraan java seperti berikut.
import javax.ejb.*; import java packages; class classname { Main method() { -----Some programming logics---- } }
Kod di atas adalah langkah asas untuk membangunkan aplikasi menggunakan pakej ejb.
Di bawah adalah contoh yang dinyatakan:
Antara Muka:
package JPAEJB; import java.util.List; import javax.ejb.Remote; @Remote public interface CustomerInterface { void addBooks(String name); List getBooks(); }
Pelaksanaan:
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; } }
Antara Muka Pelanggan:
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()); } } } }
Sampel Output:
EJB dalam Perkhidmatan Web:
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(); } }
Keselamatan EJB:
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"); } }
XML Keselamatan:
<?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>
Penjelasan: Tiga contoh di atas adalah output yang sama kami menggunakan ciri yang berbeza bagi contoh pertama ejb yang kami gunakan pelanggan akan menambah dan memadam buku menggunakan jndi(antara muka direktori penamaan java) contoh kedua yang kami gunakan perkhidmatan web untuk pelanggan melakukan operasi melalui contoh akhir web kami menggunakan keselamatan tambahan.
Secara amnya, EJB bertindak sebagai antara muka di luar aplikasi logik perniagaan; ia mempunyai ciri keserasian penyemak imbas yang lebih bijak jika dibandingkan dengan rangka kerja logik perniagaan yang lain. Ia juga mengekalkan urus niaga peringkat sistem.
Atas ialah kandungan terperinci EJB di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!