"Bạn đây rồi."

"Tôi đã nghĩ về nó và quyết định dạy cho bạn thêm một bài học nhỏ sẽ rất hữu ích cho bạn. Cho đến khi bạn làm lập trình viên, bạn có thể sẽ không bao giờ gặp phải một số thuật ngữ đặc biệt, vì vậy tôi muốn giới thiệu cho bạn một số khái niệm phổ biến ngay bây giờ."

"Khoảng 10 năm trước, E doanh nghiệp  J ava  Beans ( EJB ) đã được sử dụng rộng rãi. "

"JavaBeans nghĩa là gì?"

"JavaBeans về cơ bản có nghĩa là hạt cà phê (Java là một loại cà phê). Đó là sự hài hước của CNTT."

"Logic nghiệp vụ của một chương trình có dạng một nhóm các đối tượng cấp cao, hoặc các hạt đậu, có thể trao đổi thông điệp, tự cứu mình, tìm nhau theo tên, v.v. Thông thường, điều này đạt được thông qua một siêu đặc biệt ưa thích lớp cha mẹ mặc dù có những cách tiếp cận khác. Hành vi của các đối tượng như vậy được điều chỉnh cao."

"Ba loại đậu EJB nổi tiếng nhất là:"

"Một Entity Bean là một bean có mục đích lưu trữ dữ liệu nhất định. Loại bean này có cơ chế tích hợp sẵn để lưu chính nó và các trường của nó vào cơ sở dữ liệu. Loại đối tượng này có thể bị hủy và sau đó được tạo lại từ cơ sở dữ liệu. Nhưng ngoài việc lưu trữ dữ liệu, nó không có bất kỳ logic nào."

"Một Session Bean là một bean chức năng. Mỗi bean phiên có chức năng riêng của nó. Một bean làm một việc và một bean khác làm một việc khác. Các bean như vậy hoạt động với các đối tượng và bean khác, không phải với dữ liệu của riêng chúng."

" Phiên Đậu được chia thành hai loại."

" Bean phiên không trạng thái là một bean có các biến bên trong không lưu trữ dữ liệu quan trọng mà nó cần để hoạt động. Loại bean này có thể bị hủy và sau đó được tạo lại, và nó sẽ thực hiện chức năng của nó như trước đây."

"Một Statefull Session Bean là một bean lưu trữ nội bộ dữ liệu mà nó sử dụng khi làm việc. Nếu chúng ta gọi các phương thức trên một bean như vậy, thì mỗi lần gọi tiếp theo có thể sử dụng một số dữ liệu được truyền cho bean trong các lần gọi trước. Tuy nhiên, bean này không giống như một đối tượng thông thường."

"Nhưng sử dụng hạt đậu cũng không phải là tuyệt vời, vì vậy ngay sau đó con lắc xoay theo hướng ngược lại. Và các nhà phát triển bắt đầu sử dụng các vật thể bình thường thường xuyên hơn. Họ thậm chí còn nghĩ ra một cái tên đặc biệt."

"Một POJO là một đối tượng P lain  O ld  J ava  O. Các đối tượng này không có bất kỳ siêu chức năng nào và không kế thừa các siêu đối tượng. Chúng chỉ là các đối tượng Java thông thường."

"Khi bạn làm quen với EJB trong thực tế, bạn sẽ hiểu sự khác biệt. Nói một cách đại khái, POJO là một con dao và EJB là con dao của Quân đội Thụy Sĩ mà bạn cũng có thể sử dụng để gọi điện thoại."

"So sánh thú vị."

"Vâng, và đây là một điều nữa."

"Theo thời gian, các đối tượng và lớp bắt đầu được chuyên biệt hóa. Do đó, các nhà phát triển đã xác định một số vai trò nhất định và đặt tên mới cho các đối tượng tương ứng."

"Đối tượng truyền dữ liệu ( DTO ) là một đối tượng được tạo để truyền dữ liệu. Các đối tượng này thường có hai yêu cầu. Chúng phải: a) có thể lưu trữ dữ liệu, b) có thể tuần tự hóa. Nói cách khác, chúng chỉ được sử dụng để truyền dữ liệu ."

"Bạn tạo một đối tượng, ghi dữ liệu cần thiết từ logic nghiệp vụ vào đó, tuần tự hóa nó thành JSON hoặc XML và gửi nó đến nơi cần đến. Hoặc theo cách khác: một tin nhắn đến, bạn giải tuần tự hóa nó thành một đối tượng DTO , và trích xuất dữ liệu từ nó."

"Thực thể là một đối tượng được lưu trữ trong cơ sở dữ liệu. Nhưng chúng không chứa bất kỳ logic kinh doanh nào. Bạn có thể nói rằng đây là dữ liệu của mô hình kinh doanh."

"Chúng tôi cũng có đối tượng truy cập dữ liệu ( DAO ). DAO được sử dụng để lưu các đối tượng và truy xuất chúng từ cơ sở dữ liệu. Thực thể không làm điều này vì nó không có bất kỳ logic nào nên không thể lưu bất cứ thứ gì ở bất cứ đâu."

Ví dụ:

Mối quan hệ giữa một DAO và một thực thể
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
Bình luận
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

"Đó là tất cả cho bây giờ."

"Mặc dù đây là một bài học giới thiệu nhỏ, nhưng bạn vẫn không thể hiểu nhiều hơn ngay bây giờ. Chúng ta có thể dành nhiều ngày để nói về từng chủ đề này và chúng ta có thể dành nhiều năm để nói về EJB."

"Nhưng tôi muốn bạn ít nhất có thể hình dung những gì đang được nói nếu bạn bắt gặp những điều này trong các cuộc trò chuyện và tin nhắn, trên các diễn đàn hoặc trong một cuộc phỏng vấn."

"Hmm. Cảm ơn, Bilaabo. Vâng, tôi nghĩ rằng tôi không biết đủ các thuật ngữ kỹ thuật. Một lần nữa, cảm ơn bạn rất nhiều."