Struts vs Spring MVC
Struts framework je jedním z prvních rámců webových aplikací pro vývoj webových aplikací Java EE. Spring je open source aplikační framework. Nějaký čas po zavedení rámce Spring přidali vývojáři do rámce Spring rámec MVC v naději, že vyřeší některá omezení, která vnímali ve Struts. Ale o několik let později přišel Struts2 (nebo Struts verze 2) a byl to úplně jiný a vysoce vylepšený rámec webových aplikací. Nyní se Struts i Spring MVC ve světě velmi intenzivně používají pro vývoj aplikací Java EE.
Co je to Struts?
Struts (také známý jako Apache Struts) je multiplatformní open source framework napsaný v Javě, který je určen pro vývoj webových aplikací Java EE. Struts podporují použití architektury MVC (Model-View-Controller). Jedná se o rozšíření Java Servlet API. Craig McClanahan je původním tvůrcem Struts. Zpočátku to bylo známé jako Jakaratha Struts a bylo udržováno v rámci Jakartského projektu Apache Software Foundation. Jeho aktuální stabilní verze je verze 2.2.3, která byla vydána v květnu 2011. Je uvolněna pod licencí Apache 2.0. Rámec Struts se nazývá framework založený na požadavku a skládá se ze tří hlavních komponent: obsluhy požadavku, obsluhy odezvy a knihovny značek. Standardní identifikátor URI (Uniform Resource Identifier) je mapován na obsluhu požadavku. Obsluha odezvy je odpovědná za přenos řízení. K vytváření interaktivních aplikací s formuláři lze využít funkce, které nabízí knihovna značek. Struts podporují aplikace REST a různé technologie jako SOAP, AJAX atd.
Co je Spring MVC?
Spring je open source aplikační framework. Byl vyvinut Rodem Johnsonem a první verze byla vydána v roce 2004. Spring 3.0.5 je aktuální verzí frameworku Spring. Je licencován pod licencí Apache 2.0. Jakákoli Java aplikace může používat základní funkce frameworku Spring. V rámci Spring je několik modulů a MVC je jedním z nich. Spring MVC framework nebyl součástí jejich původního plánu. Ve skutečnosti důvodem, proč vývojáři Spring přišli s vlastním rámcem MVC, bylo poskytnout řešení toho, co ukázali jako nedostatky ve Struts (verze 1) a dalších podobných rámcích. Zejména uvedli, že chtějí vyřešit nedostatek oddělení mezi prezentační vrstvou, vrstvou zpracování požadavků a modelem. Spring MVC je také framework webových aplikací založený na požadavcích.
Jaký je rozdíl mezi Struts a Spring MVC?
Přestože Spring MVC a Struts jsou dva oblíbené rámce webových aplikací používané pro vývoj webových aplikací Java EE, mají své rozdíly. Ve skutečnosti byl Spring MVC vyvinut s cílem vyřešit několik omezení ve Struts (verze 1). Struts2 je však výrazně vylepšený rámec než verze 1 (ani nesdílejí stejnou kódovou základnu), a proto jsou Spring MVC a Structs2 vysoce srovnatelné.
Jednou z hlavních výhod Spring MVC je, že je možné bezproblémovou integraci s mnoha možnostmi zobrazení, jako jsou JSP/JSTL, Tiles, FreeMaker, Excel, PDF a JSON. Na rozdíl od Struts však Spring MVC neposkytuje vestavěnou podporu AJAX (je třeba použít knihovnu AJAX třetí strany).
V konečném důsledku jsou oba považovány za vysoce vyspělé rámce a výběr mezi těmito dvěma závisí na osobních preferencích. Zde je důležité poznamenat, že pokud existují nějaké negativní pocity vůči vzpěrám, jsou způsobeny pouze nedostatky, které byly nalezeny ve vzpěrách verze 1 (která je nyní považována za zastaralou).