Struts vs Spring MVC
Struts framework jedan je od početnih okvira web aplikacija za razvoj Java EE web aplikacija. Spring je okvir za aplikacije otvorenog koda. Neko vrijeme nakon uvođenja Spring okvira, programeri su dodali MVC okvir Spring okviru, nadajući se da će riješiti neka od ograničenja koja su uočili u Strutsu. Ali nekoliko godina kasnije, stigao je Struts2 (ili Struts verzija 2), i to je bio potpuno drugačiji i vrlo poboljšan okvir za web aplikacije. Sada se i Struts i Spring MVC vrlo intenzivno koriste za razvoj Java EE aplikacija u svijetu.
Što je Struts?
Struts (također poznat kao Apache Struts) je višeplatformski okvir otvorenog koda napisan u Javi, koji je namijenjen razvoju Java EE web aplikacija. Struts potiče korištenje MVC (Model-View-Controller) arhitekture. To je proširenje Java Servlet API-ja. Craig McClanahan je izvorni kreator Strutsa. U početku je bio poznat kao Jakaratha Struts, a održavao se u sklopu Jakarta projekta Apache Software Foundationa. Njegovo trenutno stabilno izdanje je verzija 2.2.3, koja je objavljena u svibnju 2011. Izdana je pod licencom Apache 2.0. Struts okvir se naziva okvir temeljen na zahtjevima, a sastoji se od tri glavne komponente: rukovatelj zahtjevima, rukovatelj odgovorom i biblioteka oznaka. Standardni URI (Uniform Resource Identifier) preslikan je u rukovatelja zahtjevima. Rukovatelj odgovorom odgovoran je za prijenos kontrole. Za izradu interaktivnih aplikacija s obrascima mogu se koristiti značajke koje nudi biblioteka oznaka. Struts podržava REST aplikacije i razne tehnologije kao što su SOAP, AJAX itd.
Što je Spring MVC?
Spring je okvir za aplikacije otvorenog koda. Razvio ju je Rod Johnson,, a prva verzija objavljena je 2004. Spring 3.0.5 trenutna je verzija Spring okvira. Licenciran je pod licencom Apache 2.0. Svaka Java aplikacija može koristiti osnovne značajke Spring okvira. Postoji nekoliko modula u Spring okviru, a MVC je jedan od njih. Spring MVC framework nije bio dio njihovog izvornog plana. Zapravo, razlog zašto su Spring programeri osmislili vlastiti MVC okvir bio je pružiti rješenja za ono što su pokazali kao nedostatke u Strutsu (verzija 1) i drugim sličnim okvirima. Konkretno, rekli su da žele riješiti nedostatak razdvajanja između prezentacijskog sloja, sloja za rukovanje zahtjevima i modela. Spring MVC također je okvir web aplikacije temeljen na zahtjevima.
Koja je razlika između Strutsa i Spring MVC-a?
Iako su Spring MVC i Struts dva popularna okvira web aplikacija koji se koriste za razvoj Java EE web aplikacija, oni imaju svoje razlike. Zapravo, Spring MVC je razvijen kako bi se riješilo nekoliko ograničenja u Strutsu (verzija 1). Ali Struts2 je znatno poboljšani okvir od verzije 1 (ne dijele čak ni istu bazu koda), i stoga su Spring MVC i Structs2 vrlo usporedivi.
Jedna od glavnih prednosti Spring MVC-a je ta što je moguće imati besprijekornu integraciju s mnogim opcijama prikaza kao što su JSP/JSTL, Tiles, FreeMaker, Excel, PDF i JSON. Ali, za razliku od Strutsa, Spring MVC ne pruža ugrađenu podršku za AJAX (potrebna je upotreba AJAX biblioteke treće strane).
U konačnici, oba se smatraju vrlo zrelim okvirima, a izbor između njih svodi se na osobne preferencije. Ovdje je važno napomenuti da ako postoje ikakvi negativni osjećaji prema strutovima, oni su samo zbog nedostataka koji su pronađeni u Struts verziji 1 (koja se sada smatra zastarjelom).