Struts proti Spring MVC
Struts framework je eden od začetnih ogrodij spletnih aplikacij za razvoj spletnih aplikacij Java EE. Spring je odprtokodno ogrodje aplikacij. Nekaj časa po uvedbi ogrodja Spring so razvijalci ogrodju Spring dodali ogrodje MVC v upanju, da bodo odpravili nekatere omejitve, ki so jih zaznali v Strutsu. Toda nekaj let kasneje je prišel Struts2 (ali Struts različica 2), ki je bil popolnoma drugačen in zelo izboljšan okvir spletne aplikacije. Zdaj se tako Struts kot Spring MVC zelo pogosto uporabljata za razvoj aplikacij Java EE po svetu.
Kaj je Struts?
Struts (znan tudi kot Apache Struts) je večplatformsko odprtokodno ogrodje, napisano v Javi, ki je namenjeno razvoju spletnih aplikacij Java EE. Struts spodbujajo uporabo arhitekture MVC (Model-View-Controller). Je razširitev API-ja Java Servlet. Craig McClanahan je izvirni ustvarjalec Strutsov. Sprva je bil znan kot Jakaratha Struts in je bil vzdrževan v okviru Jakarta Project of Apache Software Foundation. Njegova trenutna stabilna izdaja je različica 2.2.3, ki je bila izdana maja 2011. Izdana je pod licenco Apache 2.0. Ogrodje Struts se imenuje ogrodje, ki temelji na zahtevah, in je sestavljeno iz treh glavnih komponent: upravljalnika zahtev, upravljalnika odgovorov in knjižnice oznak. Standardni URI (Uniform Resource Identifier) je preslikan v obravnavo zahtev. Upravljavec odziva je odgovoren za prenos nadzora. Za ustvarjanje interaktivnih aplikacij z obrazci je mogoče uporabiti funkcije, ki jih ponuja knjižnica oznak. Struts podpira aplikacije REST in različne tehnologije, kot so SOAP, AJAX itd.
Kaj je Spring MVC?
Spring je odprtokodno ogrodje aplikacij. Razvil ga je Rod Johnson, in prva različica je bila izdana leta 2004. Spring 3.0.5 je trenutna različica ogrodja Spring. Licenciran je pod licenco Apache 2.0. Vsaka aplikacija Java lahko uporablja osnovne funkcije ogrodja Spring. V ogrodju Spring je več modulov in MVC je eden izmed njih. Ogrodje Spring MVC ni bilo del njihovega prvotnega načrta. Pravzaprav je bil razlog, da so razvijalci Spring prišli do lastnega ogrodja MVC, zagotoviti rešitve za tisto, kar so pokazali kot pomanjkljivosti v Struts (različica 1) in drugih podobnih ogrodjih. Zlasti so povedali, da želijo odpraviti pomanjkanje ločevanja med predstavitveno plastjo, plastjo za obdelavo zahtev in modelom. Spring MVC je tudi ogrodje spletne aplikacije, ki temelji na zahtevah.
Kakšna je razlika med Struts in Spring MVC?
Čeprav sta Spring MVC in Struts dva priljubljena ogrodja spletnih aplikacij, ki se uporabljata za razvoj spletnih aplikacij Java EE, imata svoje razlike. Pravzaprav je bil Spring MVC razvit za odpravo nekaterih omejitev v Struts (različica 1). Toda Struts2 je zelo izboljšan okvir kot različica 1 (sploh si ne delijo iste kodne baze), zato sta Spring MVC in Structs2 zelo primerljiva.
Ena od glavnih prednosti Spring MVC je, da je možna brezhibna integracija s številnimi možnostmi pogleda, kot so JSP/JSTL, Tiles, FreeMaker, Excel, PDF in JSON. Toda za razliko od Strutsa Spring MVC ne nudi vgrajene podpore za AJAX (potrebna je uporaba knjižnice AJAX drugega proizvajalca).
Navsezadnje oba veljata za zelo zrela okvira in izbira med obema je odvisna od osebnih preferenc. Tukaj je pomembno opozoriti, da če obstajajo kakršni koli negativni občutki do strutov, so le ti posledica pomanjkljivosti, ki so bile odkrite v različici Struts 1 (ki zdaj velja za zastarelo).