- vừa được xem lúc

Sao cũng là Java Data Object mà nhiều tên như vậy?

0 0 1

Người đăng: Johny Bùi

Theo Viblo Asia

Mỗi dự án lại đặt tên cho lớp dữ liệu khác nhau. Nào là DAO, DTO, POJO, Model, Entity,... mỗi ông một kiểu, lại có những folder giống nhau. Vì lý do đó, hôm nay mình ngồi viết một bài tản mạn về những tên gọi mà một Java Class có thể có trong một dự án Spring Boot.


Cách đây 2 năm, lúc mới bước chân vào con đường học Java, chắc do khả năng tiếp thu của bản thân mà mình rất là trục trặc với Java Spring Boot. Lúc đó chưa có nhiều tutorial dễ hiểu và đi vào trọng tâm như bây giờ, cộng thêm việc skip Java Core vì tưởng nó cũng tương đồng với C++ thôi mà mình đã bị "lú" rất nhiều khi tham khảo các list tutorial trên Facebook cũng như khi đọc các blog nhập môn Spring Boot. Mỗi dự án lại đặt tên cho lớp dữ liệu khác nhau. Nào là DAO, DTO, POJO, Model, Entity,... mỗi ông một kiểu, lại có những folder giống nhau. Vì lý do đó, hôm nay mình ngồi viết một bài tản mạn về những tên gọi mà một Java Class có thể có trong một dự án Spring Boot.

Dưới đây là danh sách một số loại Java Data Object thông dụng

STT Tên gọi Mục đích - Vai trò
1 Entity Class ánh xạ với bảng trong database (dùng JPA/Hibernate). Có annotation như @Entity, @Id.
2 Model Cách gọi chung chung – có thể là Entity, hoặc một object chứa dữ liệu cho View (theo mô hình MVC).
3 POJO Class Java cơ bản, không ràng buộc framework nào. Dùng để chứa dữ liệu đơn giản.
4 DTO Dùng để truyền dữ liệu giữa các tầng (thường là giữa Controller ↔ Service). Không chứa logic nghiệp vụ.
5 Request Dùng để chứa dữ liệu mapping từ request xuống server.
6 Response Lưu dữ liệu tùy biến cho reponse, thường dùng để tùy biến theo Role(quyền) của user

Có thể thấy, mỗi lại Java Object được dùng để phục vụ cho một mục đích sử dụng riêng cho một ứng dụng backend. Để hiểu được điều này, ta nên có một hình dung trước về luồng dữ liệu và xử lý từ khi người dùng gửi request từ Client đến khi Server xử lý và trả về response. [Mình sẽ bổ sung hình ảnh sau]

Chúng ta hãy xem qua một số ví dụ để biết trong dự án thực tế những loại Java Object kể trên có hình dáng như thế nào.

1. Entity:

Ví dụ về một lớp Entity Sach, dùng để lưu trữ dữ liệu trả về từ table Sach trong Database. Vì dùng annotation @Entity nên đặt cho loại Object này là Entity. Một số dự án dùng tên gọi là Model để khớp với mô hình MVC.

@Entity
public class Sach { @Id private Long id; private String ten; private String tacGia;
}

2. DTO:

TIếp theo là ví dụ về lớp SachDTO để nhận dữ liệu từ request và chứa dữ liệu response

public class SachDTO { private String ten; private String tacGia;
}

Trong thực tế, những dữ liệu trong request và response có thể không giống nhau. Khi đó ta có thể tạo SachRequest và SachResponse.

Đối với POJO, vì mình chưa có cơ hội tiếp cận nên thời gian sau sẽ bổ sung cho bài viết này.

Cảm ơn bạn đã đọc đến hết bài viết này.

Trân trọng, Nhiên.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 311

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 288

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 57

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 199

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 78

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 149