¿Cuál es un mejor marco: Struts o Spring?

Hola,

A continuación enumero algunas de las ventajas de Spring Framework. Estoy seguro de que cuando termines de leer esto, tendrás tu respuesta:

  1. Spring proporciona una separación clara entre MVC.
  2. Como Spring MVC se basa completamente en interfaces, proporciona más flexibilidad que Struts.
  3. Spring ofrece una mejor integración con tecnologías de visualización distintas de JSP.
  4. Spring puede manejar fácilmente muchas solicitudes con un comportamiento común a la vez debido a sus interceptores y controladores.
  5. Los controladores de resorte se pueden probar e integrar fácilmente con otros objetos porque generalmente se configuran a través de contenedores IoC.
  6. Debido a la eliminación de la herencia de concreto forzado y la dependencia explícita de los controladores en el servlet del despachador, los niveles web Spring MVC son fáciles de probar.
  7. Spring tiene una interfaz bien definida para la capa empresarial.

Para respaldar mi respuesta aquí hay un cuadro comparativo de popularidad entre Spring y otros Frameworks.

Espero que ahora pueda elegir fácilmente entre los dos marcos. Para avivar su interés en Spring, déjenme informarles sobre Spring.

Spring Framework es un potente y ligero marco de desarrollo de aplicaciones utilizado para Enterprise Java (JEE).

Las características principales de Spring Framework se pueden usar para desarrollar cualquier aplicación Java. Se puede describir como marco completo y modular. Spring Framework se puede utilizar para todas las implementaciones de capa de una aplicación en tiempo real. También se puede utilizar para el desarrollo de una capa particular de una aplicación en tiempo real a diferencia de Struts e Hibernate, pero con Spring podemos desarrollar todas las capas.

En caso de que desee capacitarse en primavera, puede consultar aquí:

Spring Framework Online Training | Edureka

Puedes ver este video para saber más sobre Spring.

Spring es un marco de aplicación, ofrece componentes para casi todo: bases de datos, mensajería, transacciones, seguridad, aop, etc. e incluso mvc (adecuado para aplicaciones web)
Struts es solo un WebFramework.

Si necesita construir una aplicación web básica o no quiere poner tanto esfuerzo, entonces elija Struts (más fácil porque es más simple)
pero si desea arrancar el motor V8 y prepararse para algunos requisitos más altos, vaya a Spring MVC.

Si usa Annotation Driven Controller en Spring MVC, su código se verá muy simple y podrá manejar la solicitud fácilmente.

Solo digo que si usted no tiene mucha experiencia, entonces configure Struts env. es más fácil y más rápido … ¡porque el número de posibilidades de ajuste / configuración es menor!

Depende de para qué quieres aprenderlos. Struts es mucho más simple, o tal vez simplemente más pequeño, por lo que podría ser mejor comenzar.

Struts es un marco web y generalmente se usa simplemente para definir los Controladores y representar las vistas, en una arquitectura MVC. Aquí hay más sobre MVC Architectures si lo necesita. Por lo tanto, generalmente necesita combinarlo con otros marcos, como Hibernate y EJB para finalizar su proyecto.

La primavera es enorme, es más como una plataforma completa. Tiene todo tipo de módulos, pero no tiene que usarlos todos. Spring MVC sería un buen punto de partida y el equivalente de Struts, y desde allí podría elegir otros módulos, como Spring Security y Spring Data, para adaptarlos a las necesidades de su proyecto.

Sinceramente, no hay comparación entre estos dos. Puedo comparar Spring MVC con Struts. Spring es mucho más que un marco de patrón MVC de capa de vista. Spring es principalmente un contenedor de COI para administrar los beans de su aplicación y mantener sus inyecciones / dependencias fáciles.

Se supone que Struts 2 no es solo una nueva versión de Struts Framework 1.x, sino un nuevo marco diseñado para cumplir con los nuevos requisitos del desarrollo web moderno. Se proclama como un «marco elegante y extensible que se utiliza para crear aplicaciones web Java de nivel empresarial»

Spring Framework está mucho mejor documentado en comparación con Struts, cuya documentación es bastante pobre.

Struts 2 y Spring MVC son marcos estables y listos para la producción. Creo que puedes elegir cualquiera de los dos y lograr buenos resultados. Básicamente, parece que no hay ningún problema serio que no puedas resolver con uno de ellos.

El lanzamiento inicial de Spring Framework se produjo en octubre de 2002, pero más adelante se introdujo un Spring MVC.

El código escrito con Spring MVC es más comprobable en comparación con los Struts.
Spring MVC proporciona muchos Adaptadores y Resolvedores diferentes para que sea más fácil hacer exactamente lo que necesita.

Struts tiene un diseño simplificado. Spring MVC es un marco J2EE completo. Se compone de siete capas independientes, por lo que proporciona una integración simplificada con otros marcos.

Struts es un marco web bastante desactualizado. Cayó en desgracia, ya que es difícil probar la unidad.

Spring Framework es un marco de aplicación de código abierto para la plataforma Java . El marco en sí consta de muchos otros módulos como AOP, acceso a datos, marco web, marco de gestión de transacciones y muchos otros.
SpringMVC es un marco web que puede comparar y contrastar (¿no le encanta este término?

En general, Struts 2 y Spring MVC son marcos estables y listos para la producción. Creo que puedes elegir cualquiera de los dos y lograr buenos resultados. Básicamente, parece que no hay ningún problema serio que no puedas resolver con uno de ellos.
Proporcionan un conjunto bastante similar de características y lo que no está disponible de fábrica se puede habilitar fácilmente con un complemento. Ambos se basan en la API de Servlet y el patrón de módulo-vista-controlador (MVC). Ambos pueden usar Velocity, FreeMarker o integrarse con los mosaicos de Apache.
Eso parece agradable, pero no ayuda a tomar una decisión. Entonces, antes que nada, decidamos qué criterios son los más esenciales. Creo que hay tres:

  • soporte (documentación, ejemplos y seguimiento de errores);
  • flexibilidad y extensibilidad;
  • diseño arquitectonico.

Apoyo

Se supone que Struts 2 no es solo una nueva versión de Struts Framework 1.x, sino un nuevo marco diseñado para cumplir con los nuevos requisitos del desarrollo web moderno. Se proclama como un «marco elegante y extensible que se utiliza para crear aplicaciones web Java de nivel empresarial». El proyecto Apache Struts participa en el programa Patch Reward de Google, y eso parece ser una buena señal. Algunos desarrolladores recomiendan un Apache Struts para aquellos que quieren jugar con seguridad.
El lanzamiento inicial de Spring Framework se produjo en octubre de 2002, pero más adelante se introdujo un Spring MVC. Todavía continúa evolucionando, y el lanzamiento más reciente 5.0 M3 (hito inestable) se anunció en octubre de 2016. Hay múltiples proyectos como Spring Data o Spring Security que tienen una integración perfecta con Spring MVC. Aunque puede usarlos fácilmente junto con Struts. Con Spring MVC, este soporte está integrado y es natural. Spring Framework está mucho mejor documentado en comparación con Struts, cuya documentación es bastante pobre.

Flexibilidad y extensibilidad

Bueno, la mayoría de las extensiones son bastante simples, por lo que podrían implementarse como interceptores regulares que funcionan de la misma manera en cualquiera de los marcos. Estoy seguro de que no existe tal extensión que sea técnicamente imposible en Struts 2, pero Spring MVC proporciona herramientas agradables y robustas para hacer que la arquitectura de la aplicación sea lo más limpia posible. El código escrito con Spring MVC es más comprobable en comparación con los Struts.
Spring MVC proporciona muchos Adaptadores y Resolvedores diferentes para que sea más fácil hacer exactamente lo que necesita. A diferencia de Struts, Spring MVC no necesita algo como ActionForm. No requiere que getters / setters sean expuestos por una clase de controlador (acción en la terminología de Struts). Existe una posibilidad flexible y ordenada de vincularse directamente a objetos de dominio, y puede usar cualquier número de ellos simultáneamente para el mismo manejador de solicitudes.
Struts 2 proporciona una gran cosa llamada Mapeo comodín. Funciona bien, pero se supone que debes poner esa asignación como un archivo XML (por lo que no puedes tomar un control preciso sobre la variable de ruta dentro del código del controlador) o exponer un setter declarado en una clase de Acción que no es aceptable en algunos casos.
Hay una cosa agradable llamada OGNL (Object Graph Navigation Library) que proporciona Struts. Parece ser una extensión realmente útil de la que generalmente carecen las páginas de servidor Java.

Diseño arquitectonico

La configuración basada en anotaciones es una de las cosas que podría ser suficiente para preferir Spring MVC sobre Struts. Apache Struts proporciona algunas anotaciones similares que permiten configurar la asignación, los resultados, la validación y algunas otras cosas, pero definitivamente no es tan poderoso. La anotación es más obvia ya que está conectada a un controlador o a un método que comportamiento especifica. La aplicación Spring MVC generalmente necesita solo una modesta configuración XML.
Spring MVC proporciona una separación clara de roles. Eche un vistazo a cosas como ControllerAdvice, HandlerMethodArgumentResolver, WebDataBinder, PathVariable. Echa un vistazo a su integración con PropertyEditor.
Struts tiene un diseño simplificado. Spring MVC es un marco J2EE completo. Se compone de siete capas independientes, por lo que proporciona una integración simplificada con otros marcos.

Conclusión

No existe una herramienta perfecta, pero hay una que se adapta a sus necesidades. Cualquiera de los marcos es una gran opción, pero cada uno tiene sus ventajas y desventajas. Por lo tanto, eche un vistazo más de cerca a los pros y los contras antes de tomar una decisión.

Sinceramente, no hay comparación entre estos dos. Puedo comparar Spring MVC con Struts. Spring es mucho más que un marco de patrón MVC de capa de vista. Spring es principalmente un contenedor de COI para administrar los beans de su aplicación y mantener sus inyecciones / dependencias fáciles. Aparte de eso, tiene soporte para muchas tecnologías como servicios web (Jaxws, REST), JDBC, etc.
Y finalmente, el contenedor de resorte se puede usar junto con la capa de vista de puntales 🙂

Struts es un marco web bastante desactualizado. Cayó en desgracia, ya que es difícil probar la unidad.

Spring proporciona una tonelada de mini marcos para ayudar con el cableado de objetos, presentación web, transacciones, redes, acceso a bases de datos. El código Spring facilita la prueba unitaria de su aplicación, por diseño

Entonces los dos son diferentes. Struts es algo obsoleto. La primavera tiene muchos usos.

Como punto de vista de los desarrolladores,
Struts2 es bueno para ver. Tiene buen soporte para AJAX mediante el uso del complemento struts2Jquery, etc.
La primavera, como dijo Ravi Kiran Perumalla, es más hacia el marco MVC.
Mi punto es que la mejor manera de usarlos es usar struts2 para ver y usar Spring IOC y Spring JDBC para preparar la capa de Servicio y Acceso a datos.

Definitivamente primavera. Sin embargo, puede hacer la misma tarea por ambos, pero los puntales están desactualizados