Struts vs Spring MVC
Struts framework je jedným z prvých rámcov webových aplikácií pre vývoj webových aplikácií Java EE. Spring je open source aplikačný rámec. Nejaký čas po zavedení rámca Spring pridali vývojári do rámca Spring rámec MVC v nádeji, že vyriešia niektoré z obmedzení, ktoré vnímali v Struts. Ale o niekoľko rokov neskôr prišiel Struts2 (alebo Struts verzia 2) a bol to úplne iný a výrazne vylepšený rámec webových aplikácií. Struts aj Spring MVC sa teraz vo svete veľmi intenzívne využívajú na vývoj aplikácií Java EE.
Čo je to Struts?
Struts (tiež známy ako Apache Struts) je multiplatformový open source framework napísaný v jazyku Java, ktorý je určený na vývoj webových aplikácií Java EE. Struts podporujú použitie architektúry MVC (Model-View-Controller). Ide o rozšírenie Java Servlet API. Craig McClanahan je pôvodným tvorcom Struts. Spočiatku bol známy ako Jakaratha Struts a bol udržiavaný v rámci projektu Jakarta od Apache Software Foundation. Jeho aktuálne stabilné vydanie je verzia 2.2.3, ktorá bola vydaná v máji 2011. Je vydaná pod licenciou Apache 2.0. Rámec Struts sa nazýva rámec založený na požiadavkách a skladá sa z troch hlavných komponentov: obsluhy požiadaviek, obsluhy odpovedí a knižnice značiek. Štandardný identifikátor URI (Uniform Resource Identifier) je namapovaný na obsluhu žiadosti. Obsluha odozvy je zodpovedná za prenos kontroly. Na vytváranie interaktívnych aplikácií s formulármi možno využiť funkcie, ktoré ponúka knižnica značiek. Struts podporujú aplikácie REST a rôzne technológie ako SOAP, AJAX atď.
Čo je Spring MVC?
Spring je open source aplikačný rámec. Bol vyvinutý Rodom Johnsonom a prvá verzia bola vydaná v roku 2004. Spring 3.0.5 je aktuálna verzia rámca Spring. Je licencovaný pod licenciou Apache 2.0. Každá Java aplikácia môže využívať základné funkcie rámca Spring. V rámci Spring je niekoľko modulov a MVC je jedným z nich. Spring MVC framework nebol súčasťou ich pôvodného plánu. V skutočnosti dôvodom, prečo vývojári Spring prišli s vlastným rámcom MVC, bolo poskytnúť riešenia toho, čo ukázali ako nedostatky v Struts (verzia 1) a iných podobných rámcoch. Uviedli najmä, že chcú vyriešiť nedostatok oddelenia medzi prezentačnou vrstvou, vrstvou spracovania požiadaviek a modelom. Spring MVC je tiež rámec webových aplikácií založený na požiadavkách.
Aký je rozdiel medzi Struts a Spring MVC?
Hoci Spring MVC a Struts sú dva populárne rámce webových aplikácií používané na vývoj webových aplikácií Java EE, majú svoje rozdiely. V skutočnosti bol Spring MVC vyvinutý s cieľom vyriešiť niekoľko obmedzení v Struts (verzia 1). Struts2 je však výrazne vylepšený rámec ako verzia 1 (ani nezdieľajú rovnakú základňu kódu), a preto sú Spring MVC a Structs2 vysoko porovnateľné.
Jednou z hlavných výhod Spring MVC je, že je možné bezproblémovo integrovať s mnohými možnosťami zobrazenia, ako sú JSP/JSTL, Tiles, FreeMaker, Excel, PDF a JSON. Na rozdiel od Struts však Spring MVC neposkytuje vstavanú podporu AJAX (treba použiť knižnicu AJAX tretej strany).
V konečnom dôsledku sa oba považujú za veľmi vyspelé rámce a výber medzi nimi závisí od osobných preferencií. Tu je dôležité poznamenať, že ak existujú nejaké negatívne pocity voči vzperám, sú spôsobené len nedostatkami, ktoré boli nájdené v Struts verzie 1 (ktorá je teraz považovaná za zastaranú).