Struts vs Spring MVC
Strutsi raamistik on üks esimesi veebirakenduste raamistikke Java EE veebirakenduste arendamiseks. Spring on avatud lähtekoodiga rakendusraamistik. Mõni aeg pärast Spring raamistiku kasutuselevõttu lisasid arendajad Spring raamistikule MVC raamistiku, lootes käsitleda mõningaid piiranguid, mida nad Strutsis tajusid. Kuid paar aastat hiljem saabus Struts2 (või Strutsi versioon 2) ja see oli täiesti erinev ja täiustatud veebirakenduste raamistik. Nüüd kasutatakse nii Strutsi kui ka Spring MVC-d Java EE rakenduste arendamiseks maailmas väga palju.
Mis on Struts?
Struts (tuntud ka kui Apache Struts) on Java keeles kirjutatud platvormideülene avatud lähtekoodiga raamistik, mis on mõeldud Java EE veebirakenduste arendamiseks. Toed soodustavad MVC (Model-View-Controller) arhitektuuri kasutamist. See on Java Servleti API laiendus. Craig McClanahan on Strutsi algne looja. Algselt oli see tuntud kui Jakaratha Struts ja seda hooldati Apache Software Foundationi Jakarta projekti raames. Selle praegune stabiilne väljalase on versioon 2.2.3, mis ilmus 2011. aasta mais. See on välja antud Apache litsentsi 2.0 all. Strutsi raamistikku nimetatakse päringupõhiseks raamistikuks ja see koosneb kolmest põhikomponendist: päringu töötleja, vastuse töötleja ja silditeegi. Standardne URI (ühtne ressursiidentifikaator) on vastendatud päringukäsitlejaga. Juhtimise üleandmise eest vastutab reageerimise töötleja. Vormidega interaktiivsete rakenduste loomiseks saab kasutada silditeegi pakutavaid funktsioone. Toed toetavad REST rakendusi ja erinevaid tehnoloogiaid nagu SOAP, AJAX jne.
Mis on Spring MVC?
Spring on avatud lähtekoodiga rakendusraamistik. Selle töötas välja Rod Johnson ja esimene versioon ilmus 2004. aastal. Spring 3.0.5 on Spring raamistiku praegune versioon. See on litsentsitud Apache 2.0 litsentsi alusel. Iga Java-rakendus saab kasutada Spring-raamistiku põhifunktsioone. Spring raamistikus on mitu moodulit ja MVC on üks neist. Kevadine MVC raamistik ei kuulunud nende algsesse plaani. Tegelikult oli põhjus, miks Springi arendajad tulid välja oma MVC raamistikuga, et pakkuda lahendusi Strutsi (versioon 1) ja muude sarnaste raamistike puudustele. Eelkõige ütlesid nad, et soovisid lahendada esitluskihi, taotluste käsitlemise kihi ja mudeli vahelise eraldatuse puudumist. Spring MVC on ka päringupõhine veebirakenduse raamistik.
Mis vahe on Strutsil ja Spring MVC-l?
Kuigi Spring MVC ja Struts on kaks populaarset veebirakenduste raamistikku, mida kasutatakse Java EE veebirakenduste arendamiseks, on neil oma erinevused. Tegelikult töötati Spring MVC välja selleks, et käsitleda mõningaid piiranguid Strutsis (versioon 1). Kuid Struts2 on oluliselt täiustatud raamistik kui versioon 1 (neil pole isegi sama koodibaasi) ja seetõttu on Spring MVC ja Structs2 väga võrreldavad.
Kevade MVC üks peamisi eeliseid on see, et on võimalik sujuv alt integreerida paljude vaatevalikutega, nagu JSP/JSTL, Tiles, FreeMaker, Excel, PDF ja JSON. Kuid erinev alt Strutsist ei paku Spring MVC sisseehitatud AJAX-i tuge (peab kasutama kolmanda osapoole AJAX-i teeki).
Lõppkokkuvõttes peetakse neid mõlemaid väga küpseteks raamistikeks ja nende kahe vahel valimine sõltub isiklikest eelistustest. Siinkohal on oluline märkida, et kui tugipostide suhtes on negatiivseid tundeid, on need tingitud ainult puudustest, mis leiti Strutsi versioonis 1 (mis nüüdseks loetakse aegunuks).