Uso y beneficios de Spring para SSH
Struts se utiliza como capa de aplicación, que es responsable de llamar a la capa de servicio de lógica empresarial. Entonces, el proceso del marco SSH es más o menos así: página Jsp ---- Struts ------ Servicio (clase de procesamiento de lógica de negocios) ---- Hibernate (de izquierda a derecha) struts es responsable de controlar el Servicio ( clase de procesamiento de lógica de negocios)), controlando así el ciclo de vida del Servicio, de modo que la dependencia entre capas sea muy fuerte y esté acoplada. En este punto, el uso del marco Spring desempeña el papel de controlar el objeto Acción (Strus) y la clase Servicio. La relación entre los dos es flexible y aquí se aplica el mecanismo Ioc de Spring (inversión de control e inyección de dependencia).
Ioc de Spring (inversión de control e inyección de dependencia)
Inversión de control: se refiere a la relación (de dependencia) entre los programas de control de contenedores, en lugar de la tradicional manipulación directa del código del programa. método
Inyección de dependencia: la relación de dependencia entre componentes está determinada por el contenedor. En tiempo de ejecución, el contenedor inyecta dinámicamente ciertas dependencias en los componentes.
No es difícil verlo en lo anterior: la acción solo actúa como una herramienta de control del servicio de principio a fin. No le importará ni preguntará cómo se implementan estos métodos comerciales específicos. Solo necesita saber Se puede utilizar la interfaz de clase proporcionada por el método de implementación de estos métodos comerciales. En el pasado, cuando el marco Struts se usaba solo, Action controlaba el ciclo de vida de todas las clases de métodos comerciales e incluso algunos procesos comerciales. El acoplamiento entre capas es demasiado estrecho, lo que no solo reduce la eficiencia del acceso a los datos, sino que también hace que la lógica empresarial parezca muy compleja y la cantidad de código sea grande. El contenedor Spring controla el ciclo de vida de todos los objetos de acción y las clases de lógica empresarial. Dado que la capa superior ya no controla el ciclo de vida de la capa inferior, se logra un desacoplamiento completo entre capas, de modo que el programa se ejecuta de manera más eficiente y es fácil de mantener. . El segundo beneficio de usar Spring (aplicación AOP) es:
Manejo de transacciones:
En la JDBCTemplate anterior, después de que la transacción se confirmaba con éxito, el manejo de excepciones se realizaba a través de Try/Catch. y el contenedor Spring.Spring integra TransactionTemplate, que encapsula todas las funciones del procesamiento de transacciones, incluido el manejo de excepciones cuando la transacción se revierte y la función de enviar datos a negocios complejos cuando la operación es exitosa. De esta forma, las transacciones gestionadas por el contenedor Spring reducen en gran medida la cantidad de código para los programadores y al mismo tiempo tienen un buen control de gestión sobre las transacciones. Hibernate también tiene gestión de transacciones. La gestión de transacciones de Hibernate utiliza SessionFactory para crear y mantener sesiones. Spring también integra la configuración de SessionFactory y no es necesario configurar SessionaFactory en hibernate.cfg.xml.
De esta manera, puedes aprovechar al máximo las poderosas capacidades de Spring en la gestión de transacciones. Evite tener que obtener una instancia de sesión ahora para iniciar transacciones/confirmar/revertir transacciones y las engorrosas operaciones Try/Catch cada vez que opera con datos. Estas también son buenas aplicaciones del mecanismo AOP (Programación Orientada a Aplicaciones) en Spring.
Por un lado, el desarrollo de la lógica empresarial es más claro y la división profesional del trabajo es más fácil de llevar a cabo. Por otro lado, la aplicación del aislamiento Spirng AOP reduce el acoplamiento del programa, por lo que podemos combinar todos los aspectos en diferentes aplicaciones, mejorando enormemente el grado de reutilización del código.