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.
- 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.
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