Toed vs toed2
Struts (tuntud ka kui Apache Struts või Struts 1) on Java-keeles kirjutatud platvormideülene avatud lähtekoodiga raamistik, mis on mõeldud Java EE veebirakenduste arendamiseks. See oli üks algseid Java EE veebirakenduste raamistikke. Kuid mõni aasta hiljem saabus Struts2 (või Strutsi versioon 2) ning see oli täiesti erinev ja väga täiustatud veebirakenduste raamistik. Selles käsitleti vähe küsimusi, mida peeti esialgses versioonis puudusteks. Nüüd kasutatakse Struts2 maailmas väga tugevalt Java EE rakenduste arendamiseks.
Mis on tugipostid?
Struts (Struts 1) raamistik oli üks Java EE veebirakenduste arendamise algseid veebirakenduste raamistikke. Tugipostide raamistik soodustab MVC (Model-View-Controller) arhitektuuri kasutamist. See on Java Servlet API laiendus. Strutsi algne looja on Craig McClanahan. Algselt oli see tuntud kui Jakaratha Struts ja seda hooldati Apache Tarkvara Sihtasutuse Jakarta projekti all. See antakse välja Apache License 2.0 all. Tugipostide raamistikku nimetatakse päringupõhiseks raamistikuks, mis koosneb kolmest põhikomponendist: päringute töötleja, vastuste töötleja ja sildikogu. Standardne URI (ühtne ressursi identifikaator) kaardistatakse päringute töötlejale. Kontrolli edastamise eest vastutab reageerija. Vormidega interaktiivsete rakenduste loomiseks saab kasutada silditeegi pakutavaid funktsioone. Toed toetavad REST-rakendusi ja mitmesuguseid tehnoloogiaid nagu SOAP, AJAX jne.
Mis on Struts2?
Tugipostide raamistik sisaldas sel ajal Java EE arendajate poolt teatud piiranguid (peamiselt esitluskihi, päringute käsitlemise kihi ja mudeli lahususe puudumist) ja sellest tulenevalt saabus mõni aasta hiljem Struts2. Tegelikult oli Struts2 täiesti erinev Strutsist. Tegelikult ei olnud neil isegi sama koodialust, sest Struts2 oli lihtsalt WebWork 2.2 raamistiku ümbernimetamise tulemus (s.t. WebWorki ja Strutsi kogukonnad, kes töötasid mõnda aega eraldi, andsid lõpuks oma käe, et tulla välja Struts2). Selle praegune stabiilne väljalase on versioon 2.2.3, mis ilmus 2011. aasta mais.
Mille poolest Struts ja Struts2 erinevad??
Üks paljudest Strutsi raamistiku probleemidest oli vajadus liideste asemel abstraktsete klasside programmeerimiseks. Selle lahendas Struts2 raamistik. Näiteks Struts-raamistik nõudis tegevusklasside laiendamist abstraktsetest põhiklassidest, kuid Struts2-toimingud võivad rakendada toiminguliidese. Keermestamismudeli erinevuste tõttu kahe versiooni vahel ei tule Strutsi raamistikus üles kerkinud niiditurvalisuse probleeme seoses Action objektidega Struts2 raamistikus. Põhjus on Struts2. Tegevusobjektid objektiivid realiseeritakse iga päringu jaoks, samas kui Action Struts raamistikus on ainult üks eksemplar kõigi selle toimingu taotluste käsitlemiseks. Erinevalt raamistikus Actions in Struts ei sõltu Struts2 toimingud Servleti API-st.
Struts2 raamistiku katsetatavus on suhteliselt kõrgem kui Strutsi raamistik. Saate Struts2 toiminguid testida, järgides lihtsalt kolme sammu: kohese loomine, omaduste määramine ja meetodite kutsumine. Sisendi koristamine on Struts2 raamistikus lihtsam, kuna sisestuse atribuutidena kasutatakse toimingu omadusi, ilma et oleks vaja hoida teist sisestusobjekti. Lisaks JSTL-i integreerimise toetamisele (mis on Strutsis olemas) saab Struts2 raamistik kasutada võimsamat ja väljendusrikkamat OGNL-i (objektide graafiku märkimiskeel). Tüübi muundamiseks kasutavad Strut ja Strut2 vastavalt Commons-Beanutils ja OGNL. Nende paranduste tõttu peetakse Struts2 raamistikku väga küpseks raamistikuks ja see on Java EE programmeerijate seas väga populaarne. Teisest küljest peetakse Strutsi raamistikku nüüd vananenuks.