đồng nghiệp của bạn có thể đã thấy chỉ EJB2 trở về trước, đó thực sự là những con thú xấu xa mà rất ít người rất thích sử dụng.
Trong EJB2, Đối với khung công tác đơn giản nhất, các giao diện phải được triển khai, với các phương pháp vòng đời điên mà nhà phát triển yêu cầu cung cấp, nhưng không liên quan gì đến mục đích (doanh nghiệp) của nhà phát triển. Một vài hiện vật như vậy phải được cung cấp.
Ngoài ra, mỗi bean phải được giữ đồng bộ với các mục nhập trong bộ mô tả triển khai rất chi tiết và khó đọc (tệp XML). Như thể đó không phải là xúc phạm đủ để một nhà phát triển, công cụ đặc biệt đã được sử dụng để 'tăng cường' đậu và để tạo ra các lớp proxy, bộ xương và sơ khai. Những điều OO phổ biến như kế thừa không được hỗ trợ. Có một loại tiêm, nhưng một loại thuốc kỳ lạ đã tồn tại với việc đưa mọi thứ vào một loại bản đồ (thư mục thực sự) liên kết với mỗi loại đậu.
Mô hình EJB 1 ban đầu thực thi tất cả giao tiếp là từ xa và tất cả các đối tượng được phân phối (EJB ban đầu chỉ được xem là công nghệ truy cập từ xa).Vì vậy, để có được những lợi ích của EJB bạn cũng bị buộc phải làm cho kiến trúc của bạn được phân phối, ngay cả khi điều này là hoàn toàn không cần thiết.
Có lẽ sự xúc phạm lớn nhất của tất cả là khái niệm về Entity Bean (không bị nhầm lẫn với các thực thể JPA). Những lỗi lầm với loại đậu này thật tuyệt vời đến nỗi ngay cả những người ủng hộ EJB lớn nhất vào thời điểm đó cũng không thể giới thiệu nó với bất cứ ai.
Sau đó, như là một vấn đề rất thực tế, khả năng tương thích giữa việc triển khai EJB không phải là rất tốt để nói rằng ít nhất. Đặc biệt là Entity Beans yêu cầu số lượng lớn các cấu hình cụ thể của nhà cung cấp.
Để hoàn thành tất cả, việc triển khai EJB yêu cầu các máy chủ ứng dụng nặng (về kích thước được cài đặt và bộ nhớ bắt buộc), nguồn đóng và khá đắt tiền (do đó ngăn chặn các công ty nâng cấp hoặc chuyển đổi) trở lại). Tôi không thể nhớ nhiều người viết blog về công nghệ vào thời điểm đó, và theo như tôi nhớ thì công nghệ này chủ yếu là do đội ngũ bán hàng cung cấp cho các nhà quản lý của các tập đoàn lớn.
Thật không ngạc nhiên khi công nghệ này không thực sự được yêu thích bởi nhà phát triển trung bình.
Mặt trời vừa kịp nhận thức được rằng công nghệ đang đi theo hướng hoàn toàn sai và quay 180 ° và bắt đầu nỗ lực tái cơ cấu lớn.
Kết quả là, EJB 3 (2006) là một cách tiếp cận rất lành mạnh và nhẹ nhàng. Không có giao diện khung cần thiết để thực thi, không có XML yêu cầu, chỉ có một bean duy nhất phải được mã hóa (chỉ là POJO đơn giản), có các mặc định sane ở mọi nơi (quy ước trên cấu hình), không có công cụ đặc biệt nào được yêu cầu (javac bình thường sẽ làm), và sử dụng đậu đơn giản tại địa phương thực sự là trường hợp phổ biến hiện nay.
Thực thể Đậu bị thiếu sót đến mức chúng bị rơi hoàn toàn và được thay thế bằng phương pháp tiếp cận được san bằng hơn nhiều bởi TopLink và Hibernate trong số những người khác.
Kết hợp tính năng này với nhiều ứng dụng miễn phí, nhẹ và mã nguồn mở, kết hợp với nhiều blogger nổi tiếng ủng hộ công nghệ (ví dụ: Adam Bien, Rezha Rahman, Gavin King) và sự nổi tiếng trở nên dễ hiểu .
Đã có một số hướng dẫn di chuyển "Spring to Java EE" được xuất bản gần đây và số phiếu bầu rất thuận lợi tại các trang tin tức khác nhau với nhiều người ủng hộ EJB như một công nghệ rất tốt . Điều này sẽ không thể tưởng tượng được nửa thập kỷ trước (khi EJB 3 vừa được phát hành và vẫn chưa được biết đến nhiều).
Cách thay thế phổ biến nhất cho EJB là Spring Core (Spring Beans). Tại thời điểm này tôi nghĩ rằng không có lợi thế lớn nhất định mùa xuân có hơn EJB và cách khác xung quanh. Hai công nghệ này rất giống nhau. Spring cung cấp một số tiện ích tiện lợi hơn, trong khi EJB là khái niệm nhẹ hơn (không có XML). Cả hai lợi thế là hơi chủ quan. Họ thường được lấy cảm hứng từ chức năng của nhau và ai là người đi trước thường phụ thuộc vào công nghệ nào cuối cùng đã phát hành một phiên bản mới lớn.
Các câu hỏi tương tự đã được hỏi ở đây trước đây. Hãy xem các câu hỏi sau - [what-use-are-ejbs] (http://stackoverflow.com/questions/5579890/what-use-are-ejbs), [trong-tình huống-được-ejbs-được sử dụng] (http://stackoverflow.com/questions/4773927/in-what-situations-are-ejbs-used-are-they-required-in-websites-web-applicatio) và [spring-vs-ejb] (http: //stackoverflow.com/questions/1779169/spring-vs-ejb-can-spring-replace-ejb) – CoolBeans