Mục lục
Cả hai framework Spring và Struts framework đều được sử dụng để phát triển các ứng dụng web trong Java. Trong khi Struts là framework được ra đời sớm hơn thì Spring được phát triển sau này với nhiều tính năng cải tiến hơn do rút kinh nghiệm từ người đàn anh Struts. Ngày nay cả 2 framework này đều được sử dụng để phát triển các ứng dụng web tuy nhiên Spring framework đang là lựa chọn ưu tiên hơn so với Struts.
Các bạn có thể kiểm chứng bằng cách dạo quanh các trang tuyển dụng, số lượng công việc cần kiến thức về Spring có rất nhiều, nên nếu các bạn là người mới bắt đầu học một framework để phát triển ứng dụng web trong Java thì mình khuyên nên chọn Spring.
Sự khác nhau giữa Spring vs Struts
Spring framework
Spring là các gọi tắt của Spring framework, nó còn được gọi là một application framework được sử dụng bới các ứng dụng Java dùng để xây dựng cơ sở hạ tầng và triển khai dựa trên Inversion of control (IOC) và dependency injection (DI).
Spring framework được phát triển bởi Pivotal Software, được giới thiệu lần đầu tiên vào năm 2002. Nó được viết bằng Java và chỉ hỗ trợ nền tảng Máy ảo Java (JVM). Spring cung cấp các tính năng nhiều tính năng tiện lợi giúp cho việc triển khai ứng dụng nhanh chóng, đơn giản và dễ kiểm soát hơn như quản lý transaction thông qua annotation, Spring Data giúp triển khai tầng DAO đơn giản hiệu quả và dễ dàng tùy biến. Một biến thể của Spring là Spring Boot còn mạnh mẽ hơn khi giúp các developer đẩy nhanh quá trình phát triển bằng cách cung cấp các cấu hình tự động, nhúng server trực tiếp vào ứng dụng v.v.
Struts framework
Struts là một framework dựa trên kiến trúc MVC và là một nền tảng mã nguồn mở và được sử dụng để phát triển ứng dụng web cho doanh nghiệp. Nó có trình xử lý request và response được xây dựng dựa trên request-based Framework được dùng để xử lý các yêu cầu từ người dùng. Ngoài ra AJAX, REST và SOAP cũng được Struts hỗ trợ.
Một số so sánh giữa Spring vs Struts
Spring | Struts |
---|---|
Là một lightweight framework. | Là một heavyweight framework. |
Không hỗ trợ tag library. | Hỗ trợ tag library directive. |
Loosely coupled modules – Dễ dàng mở rộng và phân tách module | Tightly coupled – Khó mở rộng hoặc phân tách module |
Nó có kiến trúc MVC phân lớp chứa 3 lớp modelling, viewing and controller | Nó không có kiến trúc phân lớp |
So sánh về hiệu xuất giữa Spring vs Struts
Spring và Struts là 2 framework khác nhau nhưng cùng được dùng để phát triển các ứng dụng web trong Java. Spring cung cấp nhiều tính năng hơn Struts tuy nhiên đều này cũng đồng nghĩa với việc kiến trúc của Spring sẽ phức tạp hơn. Spring framework được nâng cấp rất thường xuyên trong khi Struts không còn được nâng cấp ở thời điểm hiện tại.
Spring mang lợi hiệu xuất tốt hơn với kiến kiến trúc độc lập giữa các lớp model, view, và controller, ngoài ra Spring security cũng là một mảnh ghép quan trọng giúp bảo mật ứng dụng tốt hơn.
Tóm lược
Qua những thông tin trên thì các bạn có thể thấy rằng sự vượt trội của Spring so với Struts rồi đúng không. Hãy chọn Spring để bắt đầu thay vì struts nhé. Làm việc qua vài công ty mình thấy các dự án mới bao giờ cũng chọn Spring, còn Struts chủ yếu là các dự án cũ, cho các bạn vào chủ yếu để mantain là chính chứ dự án gần như rất hiếm.
Nguồn tham khảo
https://docs.spring.io/spring-framework/docs/3.0.x/spring-framework-reference/html/overview.html
https://www.geeksforgeeks.org/spring-vs-struts-in-java/?ref=rp