Struts vs Spring MVC
A Struts keretrendszer az egyik kezdeti webalkalmazás-keretrendszer a Java EE webalkalmazások fejlesztéséhez. A Spring egy nyílt forráskódú alkalmazási keretrendszer. Nem sokkal a Spring keretrendszer bevezetése után a fejlesztők hozzáadtak egy MVC keretrendszert a Spring keretrendszerhez, remélve, hogy sikerül kezelni a Strutsban észlelt korlátokat. Néhány évvel később azonban megérkezett a Struts2 (vagy a Struts 2-es verziója), és ez egy teljesen más és nagyon továbbfejlesztett webalkalmazás-keretrendszer volt. Jelenleg a Strutst és a Spring MVC-t is nagyon erősen használják Java EE alkalmazások fejlesztésére a világon.
Mi az a Struts?
A Struts (más néven Apache Struts) egy Java nyelven írt többplatformos nyílt forráskódú keretrendszer, amely Java EE webalkalmazások fejlesztésére szolgál. A támasztékok az MVC (Model-View-Controller) architektúra használatát ösztönzik. Ez a Java Servlet API kiterjesztése. Craig McClanahan a Struts eredeti alkotója. Kezdetben Jakaratha Struts néven volt ismert, és az Apache Software Foundation Jakarta Projectje alatt tartották fenn. Jelenlegi stabil kiadása a 2.2.3-as verzió, amely 2011 májusában jelent meg. Apache License 2.0 alatt jelent meg. A Struts keretrendszert kérésalapú keretrendszernek nevezik, és három fő összetevőből áll: egy kéréskezelőből, egy válaszkezelőből és egy címkekönyvtárból. A szabványos URI (Uniform Resource Identifier) egy kéréskezelőhöz van leképezve. A válaszkezelő felelős az irányítás átadásáért. Interaktív alkalmazások létrehozásához űrlapokkal a címkekönyvtár szolgáltatásai használhatók. A Struts támogatja a REST alkalmazásokat és különféle technológiákat, mint például a SOAP, AJAX stb.
Mi az a Spring MVC?
A Spring egy nyílt forráskódú alkalmazási keretrendszer. Rod Johnson fejlesztette ki, és az első verzió 2004-ben jelent meg. A Spring 3.0.5 a Spring keretrendszer jelenlegi verziója. Az Apache 2.0 licenc alatt van licencelve. Bármely Java alkalmazás használhatja a Spring keretrendszer alapvető funkcióit. A Spring keretrendszerben több modul is található, és ezek egyike az MVC. A tavaszi MVC keretrendszer nem volt az eredeti tervük része. Valójában az oka annak, hogy a Spring fejlesztői saját MVC-keretrendszerükkel álltak elő, hogy megoldást kínáljanak a Struts (1. verzió) és más hasonló keretrendszerek hiányosságaira. Konkrétan azt mondták, hogy a prezentációs réteg, a kéréskezelési réteg és a modell közötti szétválasztás hiányát kívánják kezelni. A Spring MVC egy kérésalapú webalkalmazás-keretrendszer is.
Mi a különbség a Struts és a Spring MVC között?
Bár a Spring MVC és a Struts két népszerű webalkalmazás-keretrendszer, amelyet Java EE webalkalmazások fejlesztésére használnak, vannak különbségeik. Valójában a Spring MVC-t azért fejlesztették ki, hogy a Struts (1. verzió) néhány korlátozását kezelje. A Struts2 azonban egy nagyon továbbfejlesztett keretrendszer, mint az 1-es verzió (még csak nem is ugyanazt a kódbázist használják), ezért a Spring MVC és a Structs2 nagyon hasonlóak.
A Spring MVC egyik fő előnye, hogy zökkenőmentesen integrálható számos nézetbeállítással, például JSP/JSTL, Tiles, FreeMaker, Excel, PDF és JSON. De a Struts-szal ellentétben a Spring MVC nem nyújt beépített AJAX-támogatást (harmadik féltől származó AJAX-könyvtár használata szükséges).
Végső soron mindkettő nagyon kiforrott keretrendszernek számít, és a kettő közötti választás a személyes preferencián múlik. Itt fontos megjegyezni, hogy ha bármilyen negatív érzés van a rugóstagokkal kapcsolatban, az csak a Struts 1-es verziójában talált hiányosságoknak köszönhető (amely mára már elavultnak számít).