java - framework - spring mvc
¿Cuál es el papel de Spring en Struts+Spring+Hibernate? (3)
Spring proporciona muchos "módulos" diferentes y diferentes programadores usarán diferentes partes de Spring.
Sin embargo, comúnmente en este tipo de apilamiento, verá a Spring siendo utilizado como proveedor de
- Una inversión del contenedor de control para la inyección de dependencia
- Una abstracción de Hibernate llamada "HibernateTemplate"
- Clases de Framework para simplificar la Programación Orientada a Aspectos
- Soporte de transacciones, a menudo "declarativamente" a través del contenedor IoC y AOP.
¿Qué papel está teniendo Spring en Struts + Spring + Hibernate?
Bueno, Hibernate maneja la parte de persistencia, JSP maneja su GUI, Struts controla el flujo entre páginas / acciones / etc., y Spring puede administrar todos sus beans que contienen la lógica de negocios principal, en lugar de usar EJB. Además, puede simplificar la codificación de los DAO de Hibernate y la gestión de transacciones. En lugar de tener que codificar su Localizador para obtener EJB a través de JNDI y todo eso, puede obtener Spring ApplicationContext y solicitar el bean que necesita. Todos los granos definidos en Spring pueden estar interconectados. Si tiene que conectar uno de sus beans a un EJB externo a través de JNDI, puede hacerlo sin ningún código (Spring ofrece un objeto proxy JNDI que obtiene la referencia que le da y la devuelve como un objeto con la interfaz que especifique). Esto puede ayudarlo a simplificar las pruebas unitarias de todos los beans y cambiar la configuración sin recodificar nada; puede usar uno de los PlatformTransactionManagers de Spring para administrar un DataSource o dirigirlo al administrador JTA de un contenedor J2EE; defina su propio DataSource agrupado o use el DataSource de su contenedor publicado a través de JNDI, etc.
Bien para agregar;
(Vistas y controladores) Struts para sus amplias funciones JSP con etiquetas Struts y funciones de manejo de solicitudes web
(Servicio y administración de aplicaciones) Spring para manejar el ORM y las capas de servicio con sus excelentes inyecciones de dependencia, etc.
(ORM con independencia de DB) Hibernate para ORM bien probado