2013-03-24 13 views
5

Tại sao tôi nên sử dụng EJB? Những gì tôi có thể nhận được từ nó mà tôi không thể có được theo những cách khác?Ưu điểm của việc sử dụng EJB so với POJO là gì?

Ưu điểm của việc sử dụng EJB so với POJO là gì?

+5

Giao dịch phân phối khai báo, bảo mật khai báo, chèn phụ thuộc, tự động an toàn luồng, đậu trạng thái, thụ động và kích hoạt, từ xa, v.v. –

Trả lời

6

EJBs được quản lý và giám sát bởi máy chủ ứng dụng Java EE, nó đảm nhiệm việc tạo và cung cấp cho khách hàng thông qua việc tiêm phụ thuộc và quản lý lifecycles của họ. EJB được lưu giữ bởi máy chủ ứng dụng trong các hồ bơi. Mỗi khi một khách hàng mua lại một EJB, máy chủ ứng dụng sẽ chọn một từ máy chủ và gán nó cho máy khách. Sau khi khách hàng được thực hiện với nó (không có tham chiếu đến nó còn lại ở phía khách hàng) nó được trả lại cho các hồ bơi và đã sẵn sàng để gán cho các khách hàng khác.

Việc tạo nhóm là rất quan trọng đối với khả năng mở rộng của ứng dụng. Bạn không phải thay đổi bất kỳ thứ gì thành ứng dụng được triển khai để xử lý tải đang phát triển và ứng dụng của bạn sẽ không sử dụng máy chủ ứng dụng trên đầu gối nếu tải quá cao vì lượng tài nguyên bị giới hạn. Mọi thứ được thực hiện bằng cách định cấu hình máy chủ ứng dụng.

EJBs có thể - nếu có chú thích - xử lý giao dịch và thực thi không đồng bộ và có thể được tiếp xúc với khách hàng từ xa.

Có bốn loại EJB:

phiên đậu

  1. Stateless EJBs: Cho phép khách hàng thực hiện một số hoạt động và trở lại, không thể được sử dụng để tổ chức một nhà nước kể từ khi máy chủ có thể gán nó vào các máy khách khác (bạn có thể sử dụng nó như kiểu giao tiếp giữa máy khách, ví dụ nếu bạn có một biến cá thể ở đó, đặt nó thành một giá trị, thì giá trị này có thể được nhìn thấy bởi các máy khách khác). Bạn có thể nghĩ đến việc sử dụng phương thức EJB không trạng thái cũng giống như các hàm lập trình hàm hoặc phương thức tĩnh của một lớp.
  2. Statefull EJBs: Cho phép khách hàng duy trì một trạng thái trên nhiều yêu cầu (khách hàng phải giữ một tham chiếu đến nó nếu không thì máy chủ ứng dụng có thể gán nó cho khách hàng khác)
  3. Singleton EJBs: như tên nói rằng đảm bảo máy chủ đó Instance này là duy nhất cho toàn bộ ứng dụng.

nhắn driven đậu

  1. Message driven EJBs: Cũng là stateless và sử dụng để gửi và nhận tin nhắn thông thường kết hợp với JMS. Hàm xử lý tin nhắn thực hiện không đồng bộ.

Trong khi EBJ cung cấp tất cả những thứ đó và có thể những thứ khác, POJO chỉ là POJO không có gì ít hơn và không có gì hơn.

+0

> khách hàng phải giữ tham chiếu đến nó. Điều này không hoàn toàn đúng. Máy chủ ứng dụng không có tương tác đặc biệt với GC để xem liệu khách hàng có thực sự vẫn có tham chiếu hay không. Nó có khả năng có thể được thiết lập lại và gán lại sau khi một phương thức '@ Remove' được gọi. Thông thường, máy khách khác sẽ nhận được một bean mới, vì việc gộp chung là phổ biến hơn cho các bean 'Stateless'. –

+0

Cảm ơn sự chính xác của bạn, điều này dựa trên một số thử nghiệm tôi đã làm một vài tháng trước đó bằng cách sử dụng một servlet là client và '@ LocalBean' cho bean phiên Statefull.Tôi chỉ có thể giữ trạng thái bằng cách đặt nó trong phiên (web). – A4L

+0

... phù thủy dẫn đến - vẫn chưa được trả lời - câu hỏi 'phiên' trong' Session bean' là gì? Tôi sẽ đánh giá cao nếu bạn có một số liên kết để đọc thêm về điều đó! – A4L