2010-03-17 111 views
36

Chúng khác nhau hoặc chúng được sử dụng thay thế cho nhau? Nếu chúng khác nhau, thì điều gì khiến chúng khác biệt với nhau?Sự khác biệt giữa Java Bean và Enterprise Java Beans?

+1

Dupe: http://stackoverflow.com/questions/1361758/difference-between-javabean-and-ejb – Zaki

+0

Xem thêm: http://stackoverflow.com/questions/1163139/pojo-vs-ejb-vs-ejb- 3 – Zaki

Trả lời

39

Một JavaBean chỉ là một đối tượng Java đơn giản, tuân thủ các quy ước nhất định bao gồm việc sử dụng các hàm truy cập (getFoo/setFoo) để truy cập thành viên, cung cấp một hàm tạo mặc định và một số thứ khác như thế.

Doanh nghiệp JavaBean là một thành phần trong máy chủ ứng dụng Java EE có nhiều hương vị, chi tiết khác nhau tùy theo phiên bản Java EE bạn đang nói đến (cụ thể hơn là tập hợp đặc tả EJB cụ thể nào có liên quan).

JavaBeans ban đầu được dự định sẽ được sử dụng trong các công cụ xây dựng bằng cách cung cấp một giao diện đã biết có thể được tìm kiếm thông qua sự quan tâm đến các công cụ. Tuy nhiên, họ nhanh chóng trở thành những gì mang lại một tôn giáo.

JavaBeans doanh nghiệp nhằm cung cấp logic nghiệp vụ đóng gói cho các ứng dụng doanh nghiệp trong một thùng chứa chung cung cấp những thứ như quản lý phiên, bảo mật, tổng hợp tài nguyên, v.v. mối quan tâm cắt. (Cho dù họ có hoàn thành được vấn đề này hay không là một vấn đề gây tranh cãi, ban đầu họ khó sử dụng như thế nào. Tuy nhiên, các phiên bản gần đây của đặc tả này đã làm cho việc này trở nên dễ dàng hơn. . khả năng đa số các EJB bạn đang có khả năng gặp phải)


Edited thêm:

+2

Tôi sắp sửa hoàn thành một câu trả lời gần như giống hệt nhau nhưng bạn đã đánh nó với tôi vì vậy tôi quyết định +1. Làm tốt lắm. – Fredrik

+0

Cảm ơn. Tôi đã được quan tâm, tuy nhiên, trong nhìn thấy của bạn đưa vào nó. Tôi luôn thích đọc quan điểm của người khác về thông tin. –

+0

@ttmrichter: Vâng, bạn đã đề cập đến tất cả và một số thứ khác, vì vậy những nỗ lực của tôi không thực sự đáng để xuất bản. Điều duy nhất tôi nghĩ là mất tích là một nỗ lực khó hiểu để mô tả MDB, CMP và đậu phiên nhưng tôi đã không thực sự hài lòng với nỗ lực vì vậy nó chỉ là tốt. – Fredrik

6

Hạt Java đề cập đến các lớp chỉ có các trường và phương thức getter-setter của chúng. Với ít hoặc không có logic kinh doanh nào cả. Chúng còn được gọi là POJO (Plain Old Java Object).

của EJB là một phần của J2EE đặc điểm kỹ thuật có thể được sử dụng để tận dụng đầy đủ chức năng của máy chủ phù hợp J2EE, chẳng hạn như giao dịch, quản lý phiên, an ninh vv (Điều đó không có nghĩa là bạn không thể sử dụng những mà không sử dụng EJB)

+0

Vì vậy, một EJB giống như một Java Bean mở rộng? Với một số tính năng bổ sung? –

14

Một Java Bean được định nghĩa là một thể hiện của một lớp có chứa các thuộc tính riêng (dữ liệu), và getter & phương thức setter.

Nếu bạn có:

riêng String myString; trong lớp của bạn, bạn nên có phương thức public string getMyString(); và public void setMyString (String settingString); được xác định trong mã của bạn. Mặc dù, tôi đã thấy rằng nó không phải là hoàn toàn không có gì để có tất cả mọi thứ được xác định; chỉ cần không ngạc nhiên nếu một cái gì đó phá vỡ!

Một EJB (Enterprise Java Bean) phức tạp hơn nhiều Chúng chỉ nằm trong các máy chủ ứng dụng xử lý các EJB (Tomcat không giữ EJB). Có 3 loại EJB:

  1. Phiên: Thường chứa một số logic nghiệp vụ.
  2. Thực thể: Thường giao diện với một kho dữ liệu (chẳng hạn như cơ sở dữ liệu).
  3. Thông báo điều khiển: Nhận tin nhắn từ JMS.
+0

Lưu ý rằng hiện tại TomEE, máy chủ Tomcat hỗ trợ EJB (và Cấu hình Web đầy đủ): http://tomee.apache.org/tomcat-ejb.html. –

3

"Java Beans" được sử dụng để lưu trữ dữ liệu dữ liệu lấy từ cơ sở dữ liệu và sử dụng như một chứa để mang dữ liệu giữa Servlets và JSP trong MVC model. Một lớp (container) với setters và getters được sử dụng để (put) và (get) dữ liệu.

"Enterprise Java Beans" tương tự như "Java Beans" với tính năng bổ sung như Quản lý Session, an ninh, giao dịch vv với sự trợ giúp các loại khác nhau của các EJB

  1. session Bean
  2. Entity Bean
  3. Message Driven Beans
Các vấn đề liên quan