La diferencia entre springmvc y struts2
La diferencia entre SpringMVC y Struts2
1. Mecanismo:
La entrada de Spring MVC es servlet, mientras que struts2 es filtro, lo que conduce al mecanismo de los dos diferentes.
2. Rendimiento:
el resorte será ligeramente más rápido que los puntales. Spring mvc se basa en el diseño de métodos, mientras que sturts se basa en clases. Cada vez que se realiza una solicitud, se creará una instancia de una acción y se inyectarán atributos en cada acción. Spring se basa en métodos, con una granularidad más fina, pero debe hacerlo. tenga cuidado de controlar los datos como en los servlets. Spring3 mvc es una interceptación a nivel de método. Después de interceptar el método, los datos de la solicitud se inyectan en él de acuerdo con las anotaciones en los parámetros. En spring3 mvc, un método corresponde a un contexto de solicitud. El marco de struts2 es una interceptación a nivel de clase. Cada vez que llega una solicitud, se crea una Acción y luego se llama al método setter getter para inyectar los datos en la solicitud. struts2 en realidad procesa la solicitud a través del método setter getter; struts2, un objeto de acción Corresponde a un contexto de solicitud.
3. Paso de parámetros:
Cuando struts acepta parámetros, puede usar atributos para aceptar parámetros, lo que significa que los parámetros son compartidos por múltiples métodos.
4. En términos de filosofía de diseño:
Struts está más en línea con la filosofía de programación de oop (programación orientada a objetos), mientras que spring es más cauteloso y expande los servlets.
5. Mecanismo de implementación del interceptor:
Struts tiene su propio mecanismo de interceptor y Spring MVC utiliza un método AOP independiente. Como resultado, la cantidad de archivos de configuración de struts es aún mayor que la de spring mvc. Aunque la configuración de struts se puede heredar, creo que en términos de uso, spring mvc es más conciso de usar y la eficiencia de desarrollo de spring MVC. es de hecho más alto que struts2. Spring MVC es una interceptación a nivel de método. Un método corresponde a un contexto de solicitud y el método también corresponde a una URL. Por lo tanto, desde la arquitectura misma, spring3 MVC facilita la implementación de URL tranquilas. Struts2 es una interceptación a nivel de clase. Una clase corresponde a un contexto de solicitud; es difícil implementar una URL tranquila, porque un método de acción de struts2 puede corresponder a una URL pero sus atributos de clase son compartidos por todos los métodos, lo que lo hace imposible; utilizar anotaciones u otras formas de identificar el método al que pertenece. Los métodos de spring3 mvc son básicamente independientes, con acceso exclusivo a los datos de respuesta de la solicitud. Los datos de la solicitud se obtienen a través de parámetros y los resultados del procesamiento se devuelven al marco a través de ModelMap. Las variables no se comparten entre métodos, pero struts2 es más complicado. Aunque los métodos también son independientes, todas sus variables de acción son compartidas. Esto no afectará la ejecución del programa, pero nos causará problemas al codificar y leer el programa.
6. Además, la verificación de spring3 mvc también es un punto destacado. Es compatible con JSR303 y es más conveniente para manejar solicitudes ajax. Solo necesita una anotación @ResponseBody y luego devuelve directamente el texto de respuesta.