Struts vs Spring MVC
Struts jest jedną z pierwszych platform aplikacji internetowych do tworzenia aplikacji internetowych Java EE. Spring to środowisko aplikacji typu open source. Jakiś czas po wprowadzeniu frameworka Spring, programiści dodali frameworek MVC do frameworka Spring, mając nadzieję na usunięcie niektórych ograniczeń, które dostrzegli w Struts. Ale kilka lat później pojawiła się Struts2 (lub Struts wersja 2), która była zupełnie inną i znacznie ulepszoną strukturą aplikacji internetowych. Teraz zarówno Struts, jak i Spring MVC są bardzo intensywnie wykorzystywane do tworzenia aplikacji Java EE na świecie.
Co to jest Struts?
Struts (znany również jako Apache Struts) to wieloplatformowy framework open source napisany w Javie, który jest przeznaczony do tworzenia aplikacji internetowych Java EE. Rozpórki zachęcają do korzystania z architektury MVC (Model-View-Controller). Jest rozszerzeniem Java Servlet API. Craig McClanahan jest oryginalnym twórcą Struts. Początkowo był znany jako Jakaratha Struts i był utrzymywany w ramach Jakarta Project of Apache Software Foundation. Obecna stabilna wersja to wersja 2.2.3, która została wydana w maju 2011 roku. Jest ona wydana na licencji Apache 2.0. Struktura Struts nazywa się strukturą opartą na żądaniach i składa się z trzech głównych komponentów: procedury obsługi żądań, procedury obsługi odpowiedzi i biblioteki znaczników. Standardowy identyfikator URI (Uniform Resource Identifier) jest odwzorowany na moduł obsługi żądań. Obsługa odpowiedzi jest odpowiedzialna za przekazanie kontroli. Do tworzenia interaktywnych aplikacji z formularzami można wykorzystać funkcje oferowane przez bibliotekę znaczników. Struts obsługuje aplikacje REST i różne technologie, takie jak SOAP, AJAX itp.
Co to jest Spring MVC?
Spring to środowisko aplikacji typu open source. Został on opracowany przez Rod Johnsona, a pierwsza wersja została wydana w 2004 roku. Spring 3.0.5 to aktualna wersja frameworka Spring. Jest licencjonowany na licencji Apache 2.0. Każda aplikacja Java może korzystać z podstawowych funkcji frameworka Spring. W Spring Framework jest kilka modułów, a MVC jest jednym z nich. Framework Spring MVC nie był częścią ich pierwotnego planu. W rzeczywistości powodem, dla którego programiści Spring wymyślili własny framework MVC, było dostarczenie rozwiązań tego, co pokazali jako braki w Struts (wersja 1) i innych podobnych frameworkach. W szczególności powiedzieli, że chcą rozwiązać problem braku separacji między warstwą prezentacji, warstwą obsługi żądań i modelem. Spring MVC to także platforma aplikacji internetowych oparta na zapytaniach.
Jaka jest różnica między Struts a Spring MVC?
Chociaż Spring MVC i Struts są dwoma popularnymi strukturami aplikacji internetowych wykorzystywanymi do tworzenia aplikacji internetowych Java EE, mają one swoje różnice. W rzeczywistości Spring MVC został opracowany w celu rozwiązania kilku ograniczeń Struts (wersja 1). Ale Struts2 jest znacznie ulepszonym frameworkiem niż wersja 1 (nawet nie mają tej samej podstawy kodu), a zatem Spring MVC i Structs2 są wysoce porównywalne.
Jedną z głównych zalet Spring MVC jest możliwość płynnej integracji z wieloma opcjami wyświetlania, takimi jak JSP / JSTL, Tiles, FreeMaker, Excel, PDF i JSON. Ale w przeciwieństwie do Struts, Spring MVC nie zapewnia wbudowanej obsługi AJAX (należy użyć biblioteki AJAX innej firmy).
Ostatecznie oba są uważane za bardzo dojrzałe ramy, a wybór między nimi sprowadza się do osobistych preferencji. Należy tutaj zauważyć, że jeśli istnieją jakieś negatywne odczucia w stosunku do rozpórek, są one spowodowane jedynie brakami, które stwierdzono w wersji 1 rozpórki (która jest obecnie uważana za przestarzałą).