2011-02-25 19 views
46

¿Alguien sabe la diferencia entre Struts2 y Spring 3 MVC? Sé la diferencia entre Struts 1 y Spring 2.5, pero ¿cuál es la ventaja de Struts2 sobre Spring 3 o de lo contrario?Struts2 vs Spring 3

He intentado buscar en toda la web, pero no hay una respuesta completa en ninguna parte.

+1

Una cuestión de primavera: ¿Existe configuración basada en la convención? (Es decir, no necesita xml o anotaciones si nombra todo por convención). – Quaternion

Respuesta

28

Struts2 es realmente WebWork 2 renombrado como Struts2. Considere por un momento el hecho de que Struts esencialmente aprovechó su propia marca para adoptar WebWork como su nueva base, y eso debería sugerirle que hubo al menos algunos que lo consideraron muy convincente: uno no siempre descarta su propio código base para comenzar de nuevo cuando emiten una secuela.

Dicho esto, no voy a decir que Struts2 es mejor/peor que Spring 3 MVC. La conclusión es que definitivamente son comparables.

Si desea más detalles sobre cómo se comparan, le sugiero que consulte a cabo presentaciones de Matt Raible en los últimos años sobre este tema:

http://raibledesigns.com/rd/entry/my_comparing_jvm_web_frameworks

http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-ApacheConUS2007.pdf

incluyendo una hoja de cálculo que compara varios de ellos en varios grados:

http://spreadsheets.google.com/pub?key=0AtkkDCT2WDMXdC1HOEtnUHpCejJMbUhGeGJWUmh5dVE&hl=en&output=html

1

Si conoce la diferencia entre los puntales 1 y el muelle 2.5, pregúntese qué diferencia hay entre los puntales 1 y 2, y los resortes 2.5 y 3 respectivamente. En este último, está el refinamiento de webmvc con validación, clasificación xml, resto, etc. Consulte What's New in Spring 3.0, para struts, vea What's new in Struts 2.0.

+16

Struts1 es tan similar a Struts2 como JavaScript a Java. Es decir, comparten el mismo nombre pero a partir de ahí termina. No comparten la misma base de código. – Quaternion

16

Bueno, tanto Struts2 como Spring3 son muy similares en muchos aspectos. Ambos son marcos orientados a la acción y muy similares en el flujo. Spring MVC salió debido a todas las limitaciones conocidas de Struts1. pero cuando elige Struts2 vs Spring3 MVC, no hay mucho que pueda diferenciar y ambos están bien diseñados y son buenos. para Struts2 como su framework basado en webwork pero con muchas mejoras sobre webwork. Una gran ventaja es el soporte de etiquetas UI para Struts2 en cuanto a spring3 mvc su lado bueno y poderoso es su integración bien y muy profunda con Spring framework.

Estamos utilizando Struts2 con Spring DI y gestión de transcation en nuestros pocos proyectos y en algunos usando Spring MVC. solo importa su elección y la inclinación de su marca.

edición

En mi opinión no es una buena práctica comparar como marco diseñado, mejor que venga con sus necesidades ¿Cuáles son exactamente los requisitos de su proyecto de hacer un análisis de qué marco proporciona la mejor y muy similar requisitos según sus necesidades en lugar de hacer una comparación simple

1

Como dijo Umesh, el lado positivo de spring3 MVC es que tiene una integración profunda con Spring. En uno de mis proyectos, estaba usando un framework DI propietario, por lo que Struts2 era una opción obvia (no queríamos dos framework DI juntos)

Struts2 es un framework web maduro y ampliamente utilizado con soporte de comunidad muy activo. Spring3 es un gran marco con muchos módulos, incluido Spring mvc.

+0

¡Probablemente no quieras dos marcos DI! Leí en alguna parte que el marco de inyección de dependencia utilizado por struts finalmente se convirtió en guice –

+0

Struts2 tiene soporte para todos los DI y viene con un plugin separado. – zaga250

+2

Correcto, Bob Lee fue colaborador en el proyecto Struts2 en un punto y el sistema de inyección en XWork es una versión inicial de Guice. Una de las ventajas de Struts2 es que puede conectar cualquier marco DI anulando ObjectFactory. ¿Spring MVC no está limitado a solo usar Spring para DI? –

3

Me gustaría responder de una manera obstinada ya que no he usado la primavera MVC mucho.

Uso struts2 para

1)struts2 tags and 
2)struts 2 plugins and 
3)struts2 plugin framework using freemarker makes struts2-jquery-plugin and config-browser-plugin 

Los puntales 2 convención le permite crear la clase de acción sin incluso anotaciones y cero configuración en XML. Es solo para que se vea bien en el papel, sin embargo, en todos los proyectos grandes, necesitarás escribir anotaciones. Si se pierde entre las anotaciones durante el tiempo de ejecución, hay una forma de averiguar la configuración en el navegador en modo dev, intente config-browser-plugin.

Recuerde Struts/spring MVC consiste en una parte muy pequeña de una aplicación web solo hasta el controlador frontal.

2

No es para morirse, pero si vale la pena considerar una opción de marco, también vale la pena detener algunos picos contra usted, la pareja más importante de historias de usuarios de alto nivel. Tanto Struts2 como Spring MVC 3 tienen entornos de demostración configurados muy fácilmente, es decir, puede obtener un arquetipo maven que se agote en su IDE en menos de 5 minutos.

He estado involucrado en mesas redondas sobre qué marco es mejor, y realmente creo que ninguna cantidad de discusión vale la pena el tiempo. Es mucho mejor si juegas con los marcos en el contexto de tus casos de uso.

6

características comparando

Struts 2

  • componentes configurables MVC, que se almacenan en el archivo struts.xml. Si desea cambiar algo, puede hacerlo fácilmente en el archivo xml.

  • POJO basado en acciones. La clase de acción Struts 2 es Plain Old Java Object, que impide a los desarrolladores implementar cualquier interfaz o heredar cualquier clase .

  • Compatible con Ajax, que se utiliza para realizar una solicitud asincrónica. Solo envía datos de campo necesarios en lugar de proporcionar información innecesaria , que al final mejora el rendimiento.

  • Compatibilidad para la integración con Hibernate, Spring, Tiles y más.

  • Si desea utilizar JSP, FreeMarker, velocidad o cualquier otra cosa, se pueden utilizar diferentes tipos de tipos de resultados en Struts 2.

  • También puede aprovechar de varias etiquetas como etiquetas, etiquetas de datos de interfaz de usuario, control de etiquetas y más

  • Brinda una amplia compatibilidad con el tema y la plantilla.Struts 2 admite tres tipos diferentes de temas, incluidos xhtml, simple y css_xhtml.

Spring MVC

  • separación Neat y clara de las funciones. Ya se trate de un controlador, objeto de comando, objeto de formulario o cualquier otra cosa, puede ser fácilmente cumplido con la ayuda de un objeto especializado.

  • Aproveche la adaptabilidad, la no intrusividad y la flexibilidad con la ayuda de la firma del método del controlador.

  • Ahora use objetos comerciales existentes como comando u objeto de formulario en lugar de duplicarlos para ampliar la clase base del marco específico.

  • El enlace y la validación personalizables permitirán el análisis manual y la conversión a objetos de negocios en lugar de utilizar cadenas convencionales.

  • La transferencia de modo flexible permite una fácil integración con la última tecnología.

  • Resolución de tema y configuración regional adaptable, soporte para JSP con o sin biblioteca Spring tag para JSTL, etc.

  • Aproveche la simle, pero potente biblioteca de etiquetas JSP conocida como biblioteca de etiquetas Spring. Proporciona soporte para varias funciones como datos vinculante y temas.


    VENTAJAS COMPARACIÓN

Struts 2

  • simplificado diseño

  • Facilidad de uso de plug-in

  • simplificado ActionForm & anotaciones

  • mucho mejor etiqueta cuenta con

  • integración OGNL

  • soporte AJAX

Spring MVC

  • Claro SEPAR entre controladores, modelos JavaBeans y vistas que no es posible en Struts.

  • Spring MVC es más flexible en comparación con los Struts.

  • Spring se puede utilizar con diferentes plataformas como Velocity, XLST u otras tecnologías de visualización.

  • No hay nada como ActionForm en Spring, pero se une directamente a los objetos del dominio.

  • El código también es más comprobable en comparación con los Struts.

  • Es un marco J2EE completo que consta de siete capas independientes, lo que simplifica la integración con otros marcos.

  • No proporciona un marco para implementar el dominio empresarial y la lógica, lo que ayuda a los desarrolladores a crear un controlador y una vista para la aplicación .

(Fuente http://www.cygnet-infotech.com/blog/struts-2-vs-springmvc)

+0

puede consultar: http://geekonjava.blogspot.com/2015/07/difference-between-struts2-and-spring.html – GeekOnJava