Solución:
La principal diferencia entre Spring MVC y Struts es: Spring MVC es un marco débilmente acoplado, mientras que Struts está estrechamente acoplado. Para la aplicación empresarial, debe crear su aplicación tan débilmente acoplada como haría que su aplicación sea más reutilizable, robusta y distribuida.
Si desea comparar Spring MVC con struts, considere los siguientes beneficios de Spring MVC sobre Struts.
- Spring proporciona una división muy clara entre controladores, modelos JavaBean y vistas.
- El MVC de Spring es muy flexible. A diferencia de Struts, que obliga a sus objetos Action y Form a una herencia concreta (eliminando así su oportunidad única de herencia concreta en Java), Spring MVC se basa completamente en interfaces. Además, casi todas las partes del marco Spring MVC se pueden configurar conectando su propia interfaz. Por supuesto, también ofrecemos clases de conveniencia como opción de implementación.
- Spring, como WebWork, proporciona interceptores y controladores, lo que facilita el factor de comportamiento común al manejo de muchas solicitudes.
- Spring MVC es verdaderamente independiente de la vista. No se ve obligado a usar JSP si no lo desea; puede utilizar Velocity, XLST u otras tecnologías de visualización. Si desea utilizar un mecanismo de vista personalizado, por ejemplo, su propio lenguaje de plantillas, puede implementar fácilmente la interfaz Spring View para integrarlo.
- Los controladores Spring se configuran a través de IoC como cualquier otro objeto. Esto los hace fáciles de probar y se integran maravillosamente con otros objetos administrados por Spring.
- Los niveles web Spring MVC suelen ser más fáciles de probar que los niveles web Struts, debido a que se evita la herencia concreta forzada y la dependencia explícita de los controladores en el servlet del despachador.
- El nivel web se convierte en una capa delgada sobre una capa de objeto comercial. Esto fomenta las buenas prácticas. Struts y otros marcos web dedicados lo dejan solo en la implementación de sus objetos comerciales; Spring proporciona un marco integrado para todos los niveles de su aplicación
La principal diferencia entre struts y spring MVC es la diferencia entre la programación orientada a aspectos (AOP) y la programación orientada a objetos (OOP).
Spring hace que la aplicación se acople libremente mediante el uso de Dependency Injection. El núcleo de Spring Framework es el contenedor de IoC.
OOP puede hacer todo lo que hace AOP pero con un enfoque diferente. En otras palabras, AOP complementa OOP al proporcionar otra forma de pensar sobre la estructura del programa.
Prácticamente, cuando desee aplicar los mismos cambios para muchos archivos. Debería agotarse el trabajo con Struts para agregar el mismo código para toneladas de archivos. En su lugar, Spring escribe nuevos cambios en otro lugar e inyecta en los archivos.
Algunas terminologías relacionadas de AOP son preocupaciones transversales, Aspecto, Inyección de dependencia …