Struts vs Spring MVC
Struts framework jedan je od početnih okvira web aplikacija za razvoj Java EE web aplikacija. Proljeće je okvir aplikacija otvorenog koda. Neko vrijeme nakon uvođenja Spring Spring-a, programeri su dodali MVC okvir Spring Frame-u, nadajući se da će riješiti neka ograničenja koja su primijetili u Struts-u. No, nekoliko godina kasnije, stigao je Struts2 (ili Struts verzija 2), koji je bio potpuno drugačiji i vrlo poboljšan okvir web aplikacija. Sada se i Struts i Spring MVC vrlo intenzivno koriste za razvoj Java EE aplikacija u svijetu.
Što je Struts?
Struts (također poznat i kao Apache Struts) je višeplatformski okvir otvorenog koda napisan na Javi, a namijenjen je razvoju Java EE web aplikacija. Podupirači potiču upotrebu arhitekture MVC (Model-View-Controller). Proširenje je Java Servlet API-ja. Craig McClanahan izvorni je tvorac Strutsa. U početku je bio poznat kao Jakaratha Struts, a održavao se u okviru projekta Jakarta od Zaklade Apache Software. Trenutačno stabilno izdanje je verzija 2.2.3 koja je objavljena u svibnju 2011. Izdana je pod Apache licencom 2.0. Struts framework naziva se okvir zasnovan na zahtjevima i sastoji se od tri glavne komponente: obrađivača zahtjeva, obrađivača odgovora i biblioteke oznaka. Standardni URI (jedinstveni identifikator resursa) preslikava se u obrađivač zahtjeva. Voditelj odgovora odgovoran je za prijenos kontrole. Za stvaranje interaktivnih aplikacija s obrascima mogu se koristiti značajke koje nudi biblioteka oznaka. Podupirači podržavaju REST aplikacije i razne tehnologije poput SOAP-a, AJAX-a itd.
Što je Spring MVC?
Proljeće je okvir aplikacija otvorenog koda. Razvio ga je Rod Johnson,, a prva verzija objavljena je 2004. Spring 3.0.5 je trenutna verzija Spring Spring okvira. Licenciran je pod licencom Apache 2.0. Bilo koja Java aplikacija može koristiti osnovne značajke Spring Springa. Postoji nekoliko modula u Spring okviru, a MVC je jedan od njih. Proljetni MVC okvir nije bio dio njihovog izvornog plana. Zapravo je razlog zašto su Spring programeri smislili vlastiti MVC okvir bio pružanje rješenja za ono što su pokazali kao nedostatke u Struts-u (verzija 1) i drugim sličnim okvirima. Konkretno, rekli su da žele riješiti nedostatak razdvajanja između prezentacijskog sloja, sloja za obradu zahtjeva i modela. Spring MVC je također okvir web aplikacija zasnovan na zahtjevima.
Koja je razlika između opruga i opruga MVC?
Iako su Spring MVC i Struts dva popularna okvira web aplikacija koja se koriste za razvoj Java EE web aplikacija, oni imaju svoje razlike. Zapravo, Spring MVC razvijen je kako bi se riješilo nekoliko ograničenja u Struts-u (verzija 1). No Struts2 je visoko poboljšani okvir od verzije 1 (čak ne dijele istu bazu koda), pa su stoga Spring MVC i Structs2 vrlo usporedivi.
Jedna od glavnih prednosti Spring MVC-a je što je moguća besprijekorna integracija s mnogim opcijama prikaza poput JSP / JSTL, Tiles, FreeMaker, Excel, PDF i JSON. No, za razliku od Struts-a, Spring MVC ne pruža ugrađenu AJAX podršku (treba koristiti treću stranu AJAX-knjižnice).
U konačnici, oboje se smatraju vrlo zrelim okvirima, a odabir između njih svodi se na osobne preferencije. Ovdje je važno napomenuti da ako postoje negativni osjećaji prema nosačima, oni su samo posljedica nedostataka koji su pronađeni u verziji Struts 1 (koja se sada smatra zastarjelom).