Sự khác biệt giữa Struts và Spring MVC

Struts vs Spring MVC

Khung Struts là một trong những khung ứng dụng web ban đầu để phát triển các ứng dụng web Java EE. Spring là một khung ứng dụng nguồn mở. Một thời gian sau khi giới thiệu Spring framework, các nhà phát triển đã thêm một khung MVC vào khung Spring, hy vọng sẽ giải quyết một số hạn chế mà họ nhận thấy trong Struts. Nhưng vài năm sau, Struts2 (hoặc Struts phiên bản 2) đã xuất hiện và nó là khung ứng dụng web hoàn toàn khác biệt và được cải tiến cao. Bây giờ, cả Struts và Spring MVC đang được sử dụng rất nhiều để phát triển các ứng dụng Java EE trên thế giới.

Struts là gì?

Struts (còn được gọi là Apache Struts) là một khung công tác mã nguồn mở đa nền tảng được viết bằng Java, nhằm phát triển các ứng dụng web Java EE. Struts khuyến khích sử dụng kiến ​​trúc MVC (Model-View-Controller). Nó là một phần mở rộng của API Java Servlet. Craig McClanahan là người sáng tạo ban đầu của Struts. Ban đầu, nó được gọi là Jakaratha Struts, và được duy trì trong Dự án Jakarta của Quỹ phần mềm Apache. Bản phát hành ổn định hiện tại của nó là phiên bản 2.2.3, được phát hành vào tháng 5 năm 2011. Nó được phát hành theo Giấy phép Apache 2.0. Khung Struts được gọi là khung dựa trên yêu cầu và nó được tạo thành từ ba thành phần chính: trình xử lý yêu cầu, trình xử lý phản hồi và thư viện thẻ. URI tiêu chuẩn (Mã định danh tài nguyên đồng nhất) được ánh xạ tới trình xử lý yêu cầu. Xử lý đáp ứng có trách nhiệm chuyển giao quyền kiểm soát. Để tạo các ứng dụng tương tác với các biểu mẫu, các tính năng được cung cấp bởi thư viện thẻ có thể được sử dụng. Struts hỗ trợ các ứng dụng REST và các công nghệ khác nhau như SOAP, AJAX, v.v..

Spring MVC là gì?

Spring là một khung ứng dụng nguồn mở. Nó được phát triển bởi Rod Johnson ,, và phiên bản đầu tiên được phát hành vào năm 2004. Spring 3.0.5 là phiên bản hiện tại của khung Spring. Nó được cấp phép theo giấy phép Apache 2.0. Bất kỳ ứng dụng Java nào cũng có thể sử dụng các tính năng cốt lõi của khung công tác Spring. Có một số mô-đun trong Spring framework và MVC là một trong số đó. Khung công tác Spring MVC không phải là một phần của kế hoạch ban đầu của họ. Trên thực tế, lý do mà các nhà phát triển Spring đưa ra với khung MVC riêng của họ là để cung cấp giải pháp cho những gì họ thể hiện là sự thiếu sót trong Struts (phiên bản 1) và các khung tương tự khác. Cụ thể, họ nói rằng họ muốn giải quyết việc thiếu sự tách biệt giữa lớp trình bày, lớp xử lý yêu cầu và mô hình. Spring MVC cũng là một khung ứng dụng web dựa trên yêu cầu.

Sự khác biệt giữa Struts và Spring MVC là gì?

Mặc dù Spring MVC và Struts là hai khung ứng dụng web phổ biến được sử dụng để phát triển các ứng dụng web Java EE, chúng có những điểm khác biệt. Trên thực tế, Spring MVC được phát triển để giải quyết một số hạn chế trong Struts (phiên bản 1). Nhưng Struts2 là một khung cải tiến cao hơn phiên bản 1 (chúng thậm chí không chia sẻ cùng một cơ sở mã), và do đó, Spring MVC và Structs2 có thể so sánh cao.

Một trong những ưu điểm chính của Spring MVC là có thể tích hợp liền mạch với nhiều tùy chọn xem như JSP / JSTL, Tiles, FreeMaker, Excel, PDF và JSON. Nhưng, không giống như Struts, Spring MVC không cung cấp hỗ trợ AJAX tích hợp (cần sử dụng thư viện AJAX của bên thứ ba).

Cuối cùng, cả hai đều được coi là khuôn khổ trưởng thành cao, và lựa chọn giữa hai điều này tùy thuộc vào sở thích cá nhân. Điều quan trọng cần lưu ý ở đây là nếu có bất kỳ cảm giác tiêu cực nào đối với thanh chống, chúng chỉ là do những thiếu sót được tìm thấy trong Struts phiên bản 1 (hiện được coi là lỗi thời).