Struts срещу Spring MVC
Struts framework е една от първоначалните рамки за уеб приложения за разработване на Java EE уеб приложения. Spring е рамка за приложения с отворен код. Известно време след въвеждането на рамката Spring, разработчиците добавиха рамка MVC към рамката Spring, надявайки се да се справят с някои от ограниченията, които са възприели в Struts. Но няколко години по-късно се появи Struts2 (или Struts версия 2) и беше напълно различна и силно подобрена рамка за уеб приложения. Сега както Struts, така и Spring MVC се използват много силно за разработване на Java EE приложения в света.
Какво е Struts?
Struts (известен също като Apache Struts) е междуплатформена рамка с отворен код, написана на Java, която е предназначена за разработване на Java EE уеб приложения. Struts насърчават използването на MVC (Model-View-Controller) архитектура. Това е разширение на Java Servlet API. Крейг Маккланахан е оригиналният създател на Struts. Първоначално беше известен като Jakaratha Struts и се поддържаше от проекта Jakarta на Apache Software Foundation. Текущата му стабилна версия е версия 2.2.3, която беше пусната през май 2011 г. Издадена е под Apache License 2.0. Структурата на Struts се нарича рамка, базирана на заявки, и се състои от три основни компонента: манипулатор на заявки, манипулатор на отговор и библиотека с етикети. Стандартният URI (Uniform Resource Identifier) е съпоставен с манипулатор на заявки. Манипулаторът на отговорите отговаря за прехвърлянето на контрола. За създаване на интерактивни приложения с формуляри могат да се използват функциите, предлагани от библиотеката с етикети. Struts поддържа REST приложения и различни технологии като SOAP, AJAX и др.
Какво е Spring MVC?
Spring е рамка за приложения с отворен код. Тя е разработена от Род Джонсън и първата версия е пусната през 2004 г. Spring 3.0.5 е текущата версия на Spring framework. Той е лицензиран под лиценз Apache 2.0. Всяко Java приложение може да използва основните функции на Spring framework. В Spring framework има няколко модула и MVC е един от тях. Spring MVC рамката не беше част от първоначалния им план. Всъщност причината, поради която разработчиците на Spring излязоха със собствена MVC рамка, беше да осигурят решения за това, което показаха като недостатъци в Struts (версия 1) и други подобни рамки. По-специално те казаха, че искат да се справят с липсата на разделение между презентационния слой, слоя за обработка на заявки и модела. Spring MVC също е базирана на заявка рамка за уеб приложения.
Каква е разликата между Struts и Spring MVC?
Въпреки че Spring MVC и Struts са две популярни рамки за уеб приложения, използвани за разработване на Java EE уеб приложения, те имат своите различия. Всъщност Spring MVC е разработен, за да се справи с няколко ограничения в Struts (версия 1). Но Struts2 е силно подобрена рамка от версия 1 (те дори не споделят една и съща кодова база) и следователно Spring MVC и Structs2 са много сравними.
Едно от основните предимства на Spring MVC е, че е възможно да има безпроблемна интеграция с много опции за изглед като JSP/JSTL, Tiles, FreeMaker, Excel, PDF и JSON. Но за разлика от Struts, Spring MVC не предоставя вградена поддръжка на AJAX (необходимо е да използвате AJAX библиотека на трета страна).
В крайна сметка и двете се считат за много зрели рамки и изборът между двете се свежда до личните предпочитания. Тук е важно да се отбележи, че ако има някакви негативни чувства към подпорите, те се дължат само на недостатъците, открити във версия 1 на Struts (която сега се счита за остаряла).