Spring MVC – Phần 1: Kiến trúc của Spring MVC, Flow trong Spring MVC

Spring MVC – Phần 1: Kiến trúc của Spring MVC, Flow trong Spring MVC

1. Spring MVC (Spring Web MVC)

Spring MVC là một Framework / 1 Project mã nguồn mở của Spring.

Spring MVC Framewrok cung cấp kiến truc MVC (Model-View-Controller) và các component được sử dụng để phát triển các ứng dụng web một cách linh hoạt và giảm sư

2. Flow trong Spring MVC.

Spring MVC - Phần 1: Kiến trúc của Spring MVC, Flow trong Spring MVC

  • Bất kỳ request nào tới ứng dụng web đều sẽ được gửi tới Front Controller (Dispatcher Servlet)
  • Front Controller sẽ sử dụng Handler Mapping để biết được controller nào sẽ xử lý request đó
  • Controller nhận request, gọi tới các class service thích hợp để xử lý yêu cầu.
  • Sau khi xử lý xong, Controller sẽ nhận được model từ tầng Service hoặc tầng DAO.
  • Controller gửi model vừa nhận được tới Front Controller (Dispatcher Servlet)
  • Dispatcher Servlet sẽ tìm các mẫu view, sử dụng view resolver và truyền model vào nó.
  • View template, model, view page được build và gửi trả lại Front Controller
  • Front Controller gửi một page view tới trình duyệt để hiển thị nó cho người dùng.

Spring MVC - Phần 1: Kiến trúc của Spring MVC, Flow trong Spring MVC

Trong Mô hình MVC thì:

  • Model: là các file POJO, Service, DAO thực hiện truy cập database, xử lý business
  • View: là các file JSP, html…
  • Control: là Dispatcher Controller, Handler Mapping, Controller – thực hiện điều hướn các request.

 3. Các lợi ích của Spring MVC

  • Các tầng trong Spring MVC độc lập nên việc unit test dễ dàng hơn.
  • Phần view có thể tích hợp với nhiều Framework về UI như JSF, Freemarker, Themeleaf…
  • Spring MVC base trên các POJO class nên các hành động của nó khá đơn giản
  • Hỗ trợ cả Annotation và XML config giúp việc phát triển nhanh hơn và sạch hơn.
  • Cung cấp việc phân chia một cách rõ ràng, linh hoạt giữa controller, service, data acces layer.

Phần tiếp theo chúng ta sẽ tạo một project Spring MVC để hiểu hơn về các luồng chạy, mô hình MVC trong Spring MVC.

References:

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html

https://docs.spring.io/docs/Spring-MVC-step-by-step/

https://docs.spring.io/spring-framework/docs/2.0.x/reference/mvc.html

stackjava.com