Rozpórki kontra sprężyny MVC
Struktura Struts jest jedną z pierwszych struktur aplikacji internetowych do tworzenia aplikacji internetowych Java EE. Spring to framework aplikacji typu open source. Jakiś czas po wprowadzeniu frameworka Spring programiści dodali framework MVC do frameworka Spring, mając nadzieję na rozwiązanie niektórych ograniczeń, które dostrzegli w Struts. Ale kilka lat później pojawił się Struts2 (lub Struts wersja 2), który był zupełnie innym i znacznie ulepszonym szkieletem aplikacji internetowych. Obecnie 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 wieloplatformowa platforma open source napisana w języku Java, która jest przeznaczona do tworzenia aplikacji internetowych Java EE. Struts zachęcają do korzystania z architektury MVC (Model-View-Controller). Jest to rozszerzenie 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. Aktualną stabilną wersją jest wersja 2.2.3, która została wydana w maju 2011. Jest wydana na licencji Apache License 2.0. Struktura Struts nazywana jest strukturą opartą na żądaniach i składa się z trzech głównych komponentów: modułu obsługi żądań, modułu obsługi odpowiedzi i biblioteki znaczników. Standardowy identyfikator URI (Uniform Resource Identifier) jest mapowany na procedurę obsługi żądań. Za przekazanie kontroli odpowiada osoba obsługująca odpowiedzi. 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 framework aplikacji typu open source. Został opracowany przez Roda Johnsona, a pierwsza wersja została wydana w 2004 roku. Spring 3.0.5 jest aktualną wersją frameworka Spring. Jest objęty licencją na licencji Apache 2.0. Każda aplikacja Java może korzystać z podstawowych funkcji platformy Spring. W Spring 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ń dla 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 żądaniach.
Jaka jest różnica między Struts a Spring MVC?
Chociaż Spring MVC i Struts to dwie popularne struktury aplikacji internetowych używane do tworzenia aplikacji internetowych Java EE, różnią się między sobą. W rzeczywistości Spring MVC został opracowany w celu usunięcia kilku ograniczeń w Struts (wersja 1). Ale Struts2 to znacznie ulepszony framework niż wersja 1 (nie mają nawet tej samej bazy kodu), dlatego Spring MVC i Structs2 są bardzo porównywalne.
Jedną z głównych zalet Spring MVC jest możliwość bezproblemowej integracji z wieloma opcjami widoku, takimi jak JSP / JSTL, Tiles, FreeMaker, Excel, PDF i JSON. Ale w przeciwieństwie do Struts, Spring MVC nie zapewnia wbudowanej obsługi AJAX (potrzeba użycia biblioteki AJAX innej firmy).
Ostatecznie obie 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ą jakiekolwiek negatywne uczucia wobec rozpórek, są one spowodowane tylko brakami, które znaleziono w wersji 1 Struts (która jest obecnie uważana za przestarzałą).