Spring MVC vs Struts
A estrutura Struts é uma das estruturas iniciais de aplicativos da web para o desenvolvimento de aplicativos da web Java EE. Spring é uma estrutura de aplicativos de código aberto. Algum tempo após a introdução da estrutura Spring, os desenvolvedores adicionaram uma estrutura MVC à estrutura Spring, na esperança de abordar algumas das limitações que eles perceberam no Struts. Mas alguns anos depois, o Struts2 (ou Struts versão 2) chegou, e era uma estrutura de aplicativos da web completamente diferente e altamente aprimorada. Agora, o Struts e o Spring MVC estão sendo muito utilizados no desenvolvimento de aplicativos Java EE no mundo.
O que é o Struts?
Struts (também conhecido como Apache Struts) é uma estrutura de código aberto de plataforma cruzada, escrita em Java, destinada ao desenvolvimento de aplicativos da Web Java EE. Struts incentivam o uso da arquitetura MVC (Model-View-Controller). É uma extensão da API Java Servlet. Craig McClanahan é o criador original do Struts. Inicialmente, era conhecido como Jakaratha Struts e foi mantido no Jakarta Project da Apache Software Foundation. Seu lançamento estável atual é a versão 2.2.3, lançada em maio de 2011. É lançada sob a Apache License 2.0. A estrutura do Struts é chamada de estrutura baseada em solicitação e é composta por três componentes principais: um manipulador de solicitações, um manipulador de respostas e uma biblioteca de tags. O URI padrão (identificador uniforme de recursos) é mapeado para um manipulador de solicitações. O manipulador de respostas é responsável por transferir o controle. Para criar aplicativos interativos com formulários, os recursos oferecidos pela biblioteca de tags podem ser utilizados. Struts suportam aplicativos REST e várias tecnologias como SOAP, AJAX, etc.
O que é o Spring MVC?
Spring é uma estrutura de aplicativos de código aberto. Foi desenvolvido por Rod Johnson ,, e a primeira versão foi lançada em 2004. O Spring 3.0.5 é a versão atual do framework Spring. É licenciado sob a licença Apache 2.0. Qualquer aplicativo Java pode usar os principais recursos da estrutura Spring. Existem vários módulos no framework Spring, e o MVC é um deles. A estrutura do Spring MVC não fazia parte do plano original. De fato, a razão pela qual os desenvolvedores do Spring criaram sua própria estrutura MVC foi fornecer soluções para o que eles mostraram como deficiências no Struts (versão 1) e em outras estruturas semelhantes. Em particular, eles disseram que queriam resolver a falta de separação entre a camada de apresentação, a camada de manipulação de solicitações e o modelo. O Spring MVC também é uma estrutura de aplicativo da web baseada em solicitação.
Qual é a diferença entre Struts e Spring MVC?
Embora o Spring MVC e o Struts sejam duas estruturas de aplicativos da web populares usadas para desenvolver aplicativos da Web Java EE, elas têm suas diferenças. De fato, o Spring MVC foi desenvolvido para abordar algumas limitações no Struts (versão 1). Mas o Struts2 é uma estrutura altamente aprimorada que a versão 1 (eles nem compartilham a mesma base de código) e, portanto, o Spring MVC e o Structs2 são altamente comparáveis.
Uma das principais vantagens do Spring MVC é que é possível ter uma integração perfeita com muitas opções de visualização, como JSP / JSTL, Tiles, FreeMaker, Excel, PDF e JSON. Mas, diferentemente do Struts, o Spring MVC não fornece suporte AJAX embutido (é necessário usar a biblioteca AJAX de terceiros).
Por fim, os dois são considerados estruturas altamente maduras, e a escolha entre os dois se resume à preferência pessoal. É importante observar aqui que, se houver algum sentimento negativo em relação ao struts, eles devem-se apenas às deficiências encontradas na versão 1 do Struts (que agora é considerada obsoleta).