Udah kenalan sama si eneng EJB?
yuk kenalan bareng saya, saya temenin deh hehe 😀
EJB atau kepanjangannya Enterprise Java Bean merupakan implementasi komponen bisnis / business layer yang tersedia pada bahasa Java platform Java Enterprise Edition.
Apa itu business layer?
Mudahnya gini, business layer adalah apa yang digambarkan dengan kata kerja. Misal, menyimpan buku, memasukkan buku ke keranjang belanja, mencetak print order, menampilkan transaksi penjualan dll.
Nah..
Fungsi-fungsi kerja diatas ditangani oleh EJB.
Dalam desain arsitektur yang baik, software dibagi menjadi beberapa layer sesuai dengan kerja masing-masing seperti pada gambar dibawah ini
Langsung saja pakai contoh
Untuk membuat sebuah EJB kita membuat sebuah kelas Java biasa.
Kemudian kita mengubah kelas tersebut menjadi EJB dengan cara menambahkan annotation @Stateless (stateless merupakan salah satu tipe EJB dan yang paling sering digunakan)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
package session; import entity.Book; import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; /** * * @author Agung Setiawan */ @Stateless public class BookEJB implements BookEJBRemote { @PersistenceContext(unitName="2TutorialBasicEJB-ejbPU") private EntityManager em; @Override public List<Book> finBooks() { Query query=em.createNamedQuery("findAllBooks"); return query.getResultList(); } @Override public Book findById(Long id) { return em.find(Book.class, id); } @Override public Book createBook(Book book) { em.persist(book); return book; } @Override public void deleteBook(Book book) { em.remove(em.merge(book)); } @Override public Book updateBook(Book book) { em.merge(book); return book; } } |
Supaya EJB ini bisa di akses secara remote, dalam artian EJB ini dideploy pada sebuah Application Server sedangkan aplikasi yang mengakses EJB tersebut tidak berada pada Application Server yang sama, maka kita membutuhkan sebuah interface.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package session; import entity.Book; import java.util.List; import javax.ejb.Remote; /** * * @author Agung Setiwan */ @Remote public interface BookEJBRemote { public List<Book> finBooks(); public Book findById(Long id); public Book createBook(Book book); public void deleteBook(Book book); public Book updateBook(Book book); } |
Kali ini kita gunakan annotaion @Remote
Wah gampang banget ternyata 😀
terimakasih dulu sama bapak-bapak yang berada dibelakang EJB
Sekarang bagaimana mengakses EJB tadi?
Gampang hehee karena lagi-lagi kita menggunakan annotaion, yakni @EJB
Berikut contohnya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package tutorialbasicejbclient; import entity.Book; import javax.ejb.EJB; import session.BookEJBRemote; /** * * @author Agung Setiwan */ public class Main { @EJB private static BookEJBRemote bookEJB; public static void main(String[] args) { Book book=new Book(); book.setTitle("Partikel"); book.setPrice(65.000F); book.setDescription("Cool book by Dewi Lestari"); book.setIsbn("1-2345-9898"); book.setNumberOfPage(500); book.setIllustrations(false); bookEJB.createBook(book); } } |
Sampai disini dulu perkenalan dengan EJB nya
😀
besok kita coba implementasikan beneran dengan membuat sebuah program sederhana