Struts vs Spring MVC
Struts framework là một trong những framework ứ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 mã 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 framework MVC vào Spring framework, với hy vọng 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à đó là khung ứng dụng web hoàn toàn khác và được cải tiến cao. Giờ đây, cả Struts và Spring MVC đều đ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 mã nguồn mở đa nền tảng được viết bằng Java, nhằm mục đích 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 Java Servlet API. 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 Apache Software Foundation. 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. Struts framework đượ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 chuẩn (Định danh tài nguyên đồng nhất) được ánh xạ tới trình xử lý yêu cầu. Trình xử lý phản hồi chịu 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ó thể sử dụng các tính năng do thư viện thẻ cung cấp. 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 khuôn khổ ứng dụng mã 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 Spring framework. 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 Spring framework. Có một số mô-đun trong Spring framework và MVC là một trong số đó. Khung MVC mùa xuân không nằm trong 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 khuôn khổ MVC của riêng họ là để cung cấp giải pháp cho những gì họ cho thấy là thiếu sót trong Struts (phiên bản 1) và các khuôn khổ tương tự khác. Đặc biệt, họ nói rằng họ muốn giải quyết sự thiếu 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 cải tiến cao hơn so với 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 rất có thể so sánh với nhau.
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 chế độ xem như JSP / JSTL, Tiles, FreeMaker, Excel, PDF và JSON. Tuy nhiên, 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ổ hoàn thiện cao, và việc lựa chọn giữa hai 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, thì đó chỉ là do những khiếm khuyết đã được tìm thấy trong Struts phiên bản 1 (hiện được coi là lỗi thời).