Struts vs Spring MVC
Struts framework je jedan od početnih okvira web aplikacija za razvoj Java EE web aplikacija. Spring je okvir aplikacija otvorenog koda. Neko vrijeme nakon uvođenja Spring framework-a, programeri su dodali MVC okvir u Spring okvir, nadajući se da će riješiti neka ograničenja koja su uočili u Struts-u. Ali nekoliko godina kasnije, stigao je Struts2 (ili Struts verzija 2) i bio je to potpuno drugačiji i visoko poboljšani okvir web aplikacije. Sada se i Struts i Spring MVC veoma intenzivno koriste za razvoj Java EE aplikacija u svijetu.
Šta 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 podstiču upotrebu MVC (Model-View-Controller) arhitekture. To je proširenje Java Servlet API-ja. Craig McClanahan je originalni tvorac Strutsa. U početku je bio poznat kao Jakaratha Struts, a održavao se u okviru projekta Jakarta Apache Software Foundation. Njegovo trenutno stabilno izdanje je verzija 2.2.3, koja je objavljena u maju 2011. Izdata je pod Apache licencom 2.0. Struts framework se naziva okvir zasnovan na zahtjevima i sastoji se od tri glavne komponente: rukovatelja zahtjeva, rukovatelja odgovora i biblioteke oznaka. Standardni URI (Uniform Resource Identifier) je mapiran u obrađivač zahtjeva. Rukovalac odgovora je odgovoran za prijenos kontrole. Za kreiranje interaktivnih aplikacija sa obrascima, mogu se koristiti funkcije koje nudi biblioteka oznaka. Struts podržavaju REST aplikacije i razne tehnologije kao što su SOAP, AJAX, itd.
Šta je Spring MVC?
Spring je okvir aplikacija otvorenog koda. Razvio ga je Rod Johnson, a prva verzija je objavljena 2004. Spring 3.0.5 je trenutna verzija Spring framework-a. Licenzirano je pod Apache 2.0 licencom. Svaka Java aplikacija može koristiti osnovne karakteristike Spring framework-a. U Spring framework-u postoji nekoliko modula, a MVC je jedan od njih. Spring MVC okvir nije bio dio njihovog prvobitnog plana. U stvari, razlog zašto su Spring programeri osmislili svoj vlastiti MVC okvir bio je da pruže rješenja za ono što su pokazali kao nedostatke u Struts-u (verzija 1) i drugim sličnim okvirima. Posebno su rekli da žele da se pozabave nedostatkom razdvajanja između sloja prezentacije, sloja za rukovanje zahtevima i modela. Spring MVC je također okvir web aplikacija zasnovan na zahtjevima.
Koja je razlika između Struts i Spring MVC?
Iako su Spring MVC i Struts dva popularna okvira web aplikacija koji se koriste za razvoj Java EE web aplikacija, oni imaju svoje razlike. U stvari, Spring MVC je razvijen kako bi se riješio nekoliko ograničenja u Struts-u (verzija 1). Ali Struts2 je visoko poboljšan okvir od verzije 1 (oni čak i ne dijele istu bazu koda), i stoga su Spring MVC i Structs2 vrlo uporedivi.
Jedna od glavnih prednosti Spring MVC-a je da je moguće imati besprijekornu integraciju sa mnogim opcijama prikaza kao što su JSP/JSTL, Tiles, FreeMaker, Excel, PDF i JSON. Ali, za razliku od Struts-a, Spring MVC ne pruža ugrađenu AJAX podršku (potrebno je koristiti AJAX biblioteku treće strane).
Na kraju krajeva, oba se smatraju veoma zrelim okvirima, a izbor između njih se svodi na lične preferencije. Ovdje je važno napomenuti da, ako postoje negativni osjećaji prema potpornjacima, oni su samo zbog nedostataka koji su pronađeni u Struts verziji 1 (koja se sada smatra zastarjelom).