Đối tượng Java cũ đơn giản Tên được sử dụng để nhấn mạnh rằng đối tượng đã cho là đối tượng Java thông thường, không phải là đối tượng đặc biệt như đối tượng được xác định bởi khung EJB 2.
class A {}
lớp B kéo dài/thực hiện C {}
Lưu ý: B là phi POJO khi C là loại phân lớp khung hoặc IFC. ví dụ: javax.servlet.http.HttpServlet, javax.ejb.EntityBean hoặc J2EE mở rộng và không thể tuần tự/so sánh được. Vì serializable/comparable có giá trị cho POJO.
Ở đây A là đối tượng đơn giản độc lập. B là obj đặc biệt vì B đang mở rộng/triển khai C. Vì vậy đối tượng B nhận được một số ý nghĩa từ C và B là hạn chế tuân theo các quy tắc từ C. và B là chặt chẽ cùng với với khung phân phối. Do đó đối tượng B không phải là POJO từ định nghĩa của nó.
Mã sử dụng lớp Một tham chiếu đối tượng không cần phải biết bất kỳ điều gì về loại hình này và nó có thể được sử dụng với nhiều khung công tác.
Vì vậy, POJO không cần phải 1) mở rộng các lớp được xác định trước và 2) Triển khai các giao diện đã được xác định trước.
JavaBean là một ví dụ về POJO có thể tuần tự hóa, có hàm tạo không đối số và cho phép truy cập vào các thuộc tính bằng cách sử dụng các phương thức getter và setter tuân theo quy ước đặt tên đơn giản.
POJO hoàn toàn tập trung vào logic nghiệp vụ và không phụ thuộc vào khung công tác (doanh nghiệp). Nó có nghĩa là nó có mã cho logic nghiệp vụ nhưng cách thể hiện này được tạo ra, Dịch vụ nào (EJB ..) đối tượng này thuộc về và đặc điểm đặc biệt của nó (Stateful/Stateless) nó sẽ được quyết định bởi khung công tác bằng cách sử dụng bên ngoài tệp xml.
Ví dụ 1: JAXB là dịch vụ đại diện cho đối tượng java dưới dạng XML; Các đối tượng java này rất đơn giản và đi kèm với các hàm dựng và xây dựng mặc định.
Ví dụ 2: Hibernate nơi lớp java đơn giản sẽ được sử dụng để biểu diễn Bảng. cột sẽ là trường hợp của nó.
Ví dụ 3: Dịch vụ REST. Trong các dịch vụ REST chúng ta sẽ có Service Layer và Dao Layer để thực hiện một số thao tác trên DB. Vì vậy, Đào sẽ có các truy vấn và hoạt động cụ thể của nhà cung cấp. Lớp dịch vụ sẽ chịu trách nhiệm gọi lớp DAO nào để thực hiện các thao tác DB. Tạo hoặc cập nhật API (phương thức) của DAO sẽ nhận POJO làm đối số và cập nhật POJO và chèn/cập nhật vào DB. Các POJO (lớp Java) này sẽ chỉ có các trạng thái (các biến mẫu) của mỗi cột và các getters và setters của nó. Trong thực tế, một số người tìm thấy chú thích thanh lịch, trong khi họ thấy XML là tiết, xấu xí và khó duy trì, nhưng những người khác lại tìm thấy chú thích gây ô nhiễm cho mô hình POJO. Như vậy, như là một thay thế cho XML, nhiều khung (ví dụ như Spring, EJB và JPA) cho phép chú thích để được sử dụng thay hoặc bổ sung cho XML:
Ưu điểm:
Kết nối cho cặp mã ứng dụng từ các khuôn khổ cơ sở hạ tầng là một trong nhiều lợi ích của việc sử dụng POJO. Sử dụng POJO trong tương lai sẽ chứng minh logic nghiệp vụ của ứng dụng của bạn bằng cách tách nó khỏi các khung cơ sở hạ tầng không ổn định và không ngừng phát triển. Nâng cấp lên phiên bản mới hoặc chuyển sang một khung công tác khác trở nên dễ dàng hơn và ít rủi ro hơn. POJO cũng làm cho việc thử nghiệm dễ dàng hơn, giúp đơn giản hóa và tăng tốc phát triển. logic kinh doanh của bạn sẽ được rõ ràng hơn và đơn giản hơn bởi vì nó sẽ không được rối với các mã cơ sở hạ tầng
Tài liệu tham khảo: wikisource2
Câu hỏi hay, Có vẻ như có nhiều biến thể về POJO thực sự là gì. Tôi sử dụng thuật ngữ này hầu như hàng ngày và tôi không chắc nó có ý nghĩa gì ngay bây giờ mà tôi nghĩ về nó. +1 –
Chỉ cần không nhầm lẫn nó với một C + + POD. –