Struts proti Spring MVC
Okvir Struts je eden od začetnih okvirov spletnih aplikacij za razvoj spletnih aplikacij Java EE. Pomlad je odprtokodni okvir za prijavo. Nekaj časa po uvedbi okvira Spring so razvijalci v okvir pomladi dodali okvir MVC v upanju, da bodo obravnavali nekatere omejitve, ki so jih zaznali v Struts. Toda nekaj let pozneje je prišel Struts2 (ali Struts različica 2) in bil je povsem drugačen in zelo izboljšan okvir spletnih aplikacij. Zdaj se tako Struts kot Spring MVC zelo uporabljata za razvoj aplikacij Java EE v svetu.
Kaj je Struts?
Struts (znan tudi kot Apache Struts) je medplatno odprtokodno ogrodje, zapisano v Javi, ki je namenjeno razvoju spletnih aplikacij Java EE. Opornice spodbujajo uporabo arhitekture MVC (Model-View-Controller). To je razširitev Java Servlet API-ja. Craig McClanahan je prvotni ustvarjalec Struts-a. Sprva je bil znan kot Jakaratha Struts, vzdrževal pa ga je v okviru projekta Jakarta Project of Apache Software Foundation. Njegova trenutna stabilna izdaja je različica 2.2.3, ki je izšla maja 2011. Izšla je pod Apache License 2.0. Ogrodje Struts se imenuje okvir, ki temelji na zahtevi, in ga sestavljajo tri glavne komponente: obravnavalec zahtevkov, odzivnik in knjižnica oznak. Standardni URI (enotni identifikator vira) je preslikan na upravitelja zahteve. Za prenos nadzora je odgovoren obdelovalec odzivov. Za ustvarjanje interaktivnih aplikacij z obrazci je mogoče uporabiti funkcije, ki jih ponuja knjižnica oznak. Oporniki podpirajo aplikacije REST in različne tehnologije, kot so SOAP, AJAX itd.
Kaj je Spring MVC?
Pomlad je odprtokodni okvir za prijavo. Razvil jo je Rod Johnson, prva različica pa je izšla leta 2004. Spring 3.0.5 je trenutna različica okvira Spring. Licenciran je pod licenco Apache 2.0. Vsaka Java aplikacija lahko uporablja osnovne značilnosti okvira Spring. V pomladanskem okviru je več modulov in MVC je eden izmed njih. Okvir Spring MVC ni bil del njihovega prvotnega načrta. Pravzaprav je bil razlog, da so Spring razvijalci oblikovali svoj okvir MVC, da so ponudili rešitve za tisto, kar so pokazali kot pomanjkljivosti v Struts (različica 1) in drugih podobnih okvirih. Zlasti so povedali, da se želijo spoprijeti s pomanjkanjem ločitve med predstavitvenim slojem, slojem za obdelavo zahtevkov in modelom. Spring MVC je tudi okvir za spletne aplikacije, ki temelji na zahtevi.
Kakšna je razlika med Struts in Spring MVC?
Čeprav sta Spring MVC in Struts dva priljubljena okvira spletnih aplikacij, ki se uporabljata za razvoj spletnih aplikacij Java EE, imata svoje razlike. V bistvu je bil Spring MVC razvit z namenom reševanja nekaj omejitev v Struts (različica 1). Toda Struts2 je zelo izboljšan okvir kot različica 1 (sploh nimajo iste kode), zato sta Spring MVC in Structs2 zelo primerljiva.
Ena glavnih prednosti Spring MVC je, da je mogoče brezhibno povezovati z mnogimi možnostmi pogleda, kot so JSP / JSTL, Tiles, FreeMaker, Excel, PDF in JSON. Toda za razliko od Struts-a Spring MVC ne ponuja vgrajene podpore AJAX (potreba po uporabi druge knjižnice AJAX).
Na koncu oba veljata za zelo zrele okvire, izbira med tema dvema pa je osebna želja. Tu je pomembno opozoriti, da če obstajajo negativni občutki do opornic, nastanejo le zaradi pomanjkljivosti, ki so jih našli v različici Struts 1 (ki zdaj velja za zastarelo).