Struts vs Spring MVC
Struts framework és un dels marcs d'aplicacions web inicials per desenvolupar aplicacions web Java EE. Spring és un marc d'aplicacions de codi obert. Un temps després de la introducció del marc Spring, els desenvolupadors van afegir un marc MVC al marc Spring, amb l'esperança d'abordar algunes de les limitacions que van percebre a Struts. Però pocs anys més tard, va arribar Struts2 (o Struts versió 2), i era un marc d'aplicacions web completament diferent i molt millorat. Ara, tant Struts com Spring MVC s'estan utilitzant molt per desenvolupar aplicacions Java EE al món.
Què és Struts?
Struts (també conegut com Apache Struts) és un marc de codi obert multiplataforma escrit en Java, que està pensat per desenvolupar aplicacions web Java EE. Struts fomenta l'ús de l'arquitectura MVC (Model-View-Controller). És una extensió de l'API Java Servlet. Craig McClanahan és el creador original de Struts. Inicialment es coneixia com a Jakaratha Struts, i es va mantenir sota el projecte Jakarta de l'Apache Software Foundation. La seva versió estable actual és la versió 2.2.3, que es va publicar el maig de 2011. Es publica sota la llicència Apache 2.0. El marc Struts s'anomena marc basat en sol·licituds i està format per tres components principals: un gestor de sol·licituds, un gestor de respostes i una biblioteca d'etiquetes. L'URI estàndard (identificador uniforme de recursos) s'assigna a un gestor de sol·licituds. El gestor de respostes és responsable de transferir el control. Per crear aplicacions interactives amb formularis, es poden utilitzar les funcions que ofereix la biblioteca d'etiquetes. Struts admet aplicacions REST i diverses tecnologies com SOAP, AJAX, etc.
Què és Spring MVC?
Spring és un marc d'aplicacions de codi obert. Va ser desenvolupat per Rod Johnson, i la primera versió es va publicar el 2004. Spring 3.0.5 és la versió actual del marc Spring. Té llicència sota llicència Apache 2.0. Qualsevol aplicació Java pot utilitzar les característiques bàsiques del marc Spring. Hi ha diversos mòduls al framework Spring, i MVC és un d'ells. El marc de Spring MVC no formava part del seu pla original. De fet, el motiu pel qual els desenvolupadors de Spring van crear el seu propi marc MVC va ser per oferir solucions a allò que van mostrar com a deficiències a Struts (versió 1) i altres marcs similars. En particular, van dir que volien abordar la manca de separació entre la capa de presentació, la capa de gestió de sol·licituds i el model. Spring MVC també és un marc d'aplicacions web basat en sol·licituds.
Quina diferència hi ha entre Struts i Spring MVC?
Tot i que Spring MVC i Struts són dos marcs d'aplicacions web populars utilitzats per desenvolupar aplicacions web Java EE, tenen les seves diferències. De fet, Spring MVC es va desenvolupar per abordar poques limitacions a Struts (versió 1). Però Struts2 és un marc molt millorat que la versió 1 (ni tan sols comparteixen la mateixa base de codi) i, per tant, Spring MVC i Structs2 són molt comparables.
Un dels principals avantatges de Spring MVC és que és possible tenir una integració perfecta amb moltes opcions de visualització com ara JSP/JSTL, Tiles, FreeMaker, Excel, PDF i JSON. Però, a diferència de Struts, Spring MVC no ofereix suport AJAX integrat (cal utilitzar una biblioteca AJAX de tercers).
En última instància, tots dos es consideren marcs molt madurs, i triar entre els dos es redueix a la preferència personal. És important tenir en compte aquí que si hi ha sentiments negatius envers els puntals, només es deuen a les deficiències que es van trobar a la versió 1 de Struts (que ara es considera obsoleta).