Hibernate không phải là một Web Framework!

0 0 0

Người đăng: Vinh Phạm

Theo Viblo Asia

Hôm nọ, tôi tìm kiếm danh sách 10 framework web hàng đầu cho Java, và trong mỗi bài viết tôi đọc được, Hibernate đều xuất hiện trong danh sách.

Điều đó khiến tôi suy nghĩ — Hibernate không phải là một framework web! Nhưng nhiều người (và nhiều bài viết trên các diễn đàn, blog) lại nhầm lẫn về điều này.

Vậy nên, tôi nghĩ đã đến lúc làm rõ đâu là một framework web thực sự, đâu chỉ là một module, và đâu là thứ thuộc về một danh mục hoàn toàn khác như ORM hay nền tảng thương mại điện tử.

Hãy cùng phân tích trong bài viết này nhé!

1. Web Frameworks

Một web framework là công cụ giúp bạn vận hành một ứng dụng web — nó cung cấp cách tổ chức để xử lý request, response, định tuyến (routing), và đôi khi cả hệ thống templating.

Nó chính là thứ giúp ứng dụng web của bạn hoạt động.

Ví dụ về các framework web trong Java:

  • Spring Boot: Máy chủ nhúng, tự động cấu hình, hỗ trợ microservices. Sử dụng cho ứng dụng web tổng quát, microservices.
  • Jakarta EE: Stack Java EE chuẩn hóa, JAX-RS, Servlets. Sử dụng cho ứng dụng doanh nghiệp quy mô lớn.
  • Quarkus: Hướng đám mây, hỗ trợ GraalVM, khởi động nhanh. Sử dụng cho ứng dụng đám mây, serverless.
  • Micronaut: Nhẹ, hướng đám mây, khởi động nhanh. Sử dụng cho Microservices, serverless.
  • Grails: Quy ước mặc định, GORM, xây dựng trên Spring Boot. Sử dụng cho phát triển nhanh.
  • Play! : Lập trình bất đồng bộ, reactive. Sử dụng cho các ứng dụng hiệu năng cao.
  • Dropwizard: Tập trung vào microservices, gọn nhẹ. Sử dụng cho API REST nhanh.
  • Vert.x: Hướng sự kiện, reactive, đa ngôn ngữ. Sử dụng cho các ứng dụng web hiệu suất cao.
  • Vaadin: Full-stack, component UI, render phía server. Sử dụng cho ứng dụng doanh nghiệp có giao diện UI.

Các framework này giúp bạn xây dựng và chạy một ứng dụng web.

Nếu một công cụ không hỗ trợ trực tiếp việc phục vụ request, thì nó không phải là một web framework!

2. Web Modules: Không phải là Framework hoàn chỉnh

Một module web là một phần của framework, nhưng nó không thể tự chạy một ứng dụng hoàn chỉnh.

Nó chỉ bổ sung một số chức năng, chẳng hạn như hỗ trợ mô hình MVC (Model-View-Controller).

Ví dụ: Module Spring MVC có tính năng chính là DispatcherServlet, mô hình MVC, tích hợp Spring. Nó hoạt động hiệu quả với Spring / Spring Boot.

Tuy nhiên, Spring MVC không thể tự chạy một ứng dụng web — nó chỉ là một phần của Spring Boot hoặc Spring Framework.

Nếu một công cụ cần một framework khác để hoạt động, thì nó chỉ là một module, không phải một framework web hoàn chỉnh.

3. ORM Frameworks: Không dành cho Web, mà dành cho Database

Các framework ORM (Object-Relational Mapping) hỗ trợ tương tác với cơ sở dữ liệu, chứ không phải xử lý request web.

Chúng giúp lập trình viên làm việc với các đối tượng Java thay vì viết truy vấn SQL thô.

Ví dụ: Hibernate có tính năng ánh xạ đối tượng-quan hệ, tự động tạo bảng, được sử dụng cho các ứng dụng có nhiều truy vấn Database.

Bạn không thể xử lý request GET với Hibernate.

Nhưng nếu bạn muốn ánh xạ đối tượng Java với bảng trong database mà không cần viết SQL thủ công, thì Hibernate là lựa chọn tuyệt vời.

Hibernate không xử lý request web. Nó là một công cụ làm việc với cơ sở dữ liệu, không phải một framework web.

4. Nền tảng thương mại điện tử: Cũng không phải Framework Web

Các nền tảng thương mại điện tử là các hệ thống chuyên biệt được xây dựng để hỗ trợ bán hàng trực tuyến và các ứng dụng thương mại điện tử.

VD: Nền tảng ATG (Oracle Commerce) là nền tảng E-Commerce thương mại điện tử doanh nghiệp, giúp cá nhân hóa trải nghiệm người dùng, được sử dụng cho các website thương mại điện tử quy mô lớn.

Nói cách khác, ATG được thiết kế để bán sản phẩm trực tuyến.

Nó không phải là một framework web tổng quát.

Ngừng gọi Hibernate là một Web Framework!

Lần tới khi bạn thấy Hibernate xuất hiện trong danh sách “Top 10 Java Web Frameworks”, bạn đã biết rõ thực hư.

Hibernate không xử lý request hay phục vụ trang web — nhưng nó sẽ giúp bạn làm việc với cơ sở dữ liệu dễ dàng hơn.

Nếu bạn đang xây dựng một ứng dụng web, hãy chọn Spring Boot, Quarkus, Play! hoặc Jakarta EE.

Nếu bạn cần hỗ trợ cơ sở dữ liệu, hãy dùng Hibernate — nhưng đừng mong đợi nó xử lý một request HTTP nào cả.

Bình luận

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

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

Những điều bạn có thể cần đối với Tailwind

Bạn đang suy nghĩ để lựa chọn một CSS framework cho dự án của mình? Nếu bạn đang băn khoăn thì hãy trải nghiệm với Tailwind nhé, đó sẽ là một trải nghiệm thú vị khi bạn sử dụng một loại framework mới

0 0 45

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

Cách học code cho anh em lười học

Tất cả những bài viết về cách học code sao cho nhanh ở trên mạng mình khuyên thật là các bạn nên quên hết đi. Hầu hết chỉ toàn là self help kiểu "Hãy code đi" "Hãy bắt tay vào làm" "Code ngay bây giờ"

0 0 35

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

Review: Svelte, SvelteKit - Kẻ thách thức đám đông - Viblo

FE Framework review: Svelte, SvelteKit - Kẻ thách thức đám đông. Tại sao nên đọc bài này. Pros/cons của Nextjs. .

0 0 24

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

Chia sẻ kiến thức về lập trình: Khám phá các ngôn ngữ lập trình, framework và thư viện (P1)

Lập trình, một trong những kỹ năng quan trọng nhất của thế kỷ 21, không chỉ là việc biết cách viết mã. Đó còn là việc hiểu rõ về các ngôn ngữ lập trình, biết cách sử dụng các framework phù hợp và khám

0 0 32

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

Tìm hiểu về Remix: Web framework xây dựng trên React.

1. Giới thiệu.

0 0 20

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

Basic about MVC partern

ASP.NET Core MVC is a rich framework for building web apps and APIs using the Model-View-Controller design pattern.

0 0 14