Módulos del marco de Spring
El framework Spring consta de siete módulos bien definidos (Figura 1.1).
(Figura 1.1 de descripción general de Spring Framework)
En su conjunto, estos módulos le proporcionan todo lo que necesita para desarrollar aplicaciones empresariales. Pero no es necesario que base su aplicación completamente en el marco Spring. Eres libre de elegir los módulos que se adapten a tu aplicación e ignorar el resto.
Como puede ver, todos los módulos Spring están construidos sobre el contenedor principal. El contenedor define cómo se crean, configuran y administran los beans; más detalles en Spring. Potencialmente utilizará estas clases cuando configure su aplicación. Pero como desarrollador, lo más probable es que le interesen otros módulos que afecten a los servicios proporcionados por el contenedor. Estos módulos le proporcionarán el marco para crear servicios de aplicaciones, como AOP y persistencia.
Contenedor principal
Esta es la parte más básica del marco Spring. Proporciona funciones de inyección de dependencia (DependencyInjection) para implementar la gestión de contenedores de beans. El concepto más básico aquí es BeanFactory, que es el núcleo de cualquier aplicación Spring. BeanFactory es una implementación del patrón de fábrica que utiliza IoC para separar la configuración de la aplicación y las especificaciones de dependencia del código de la aplicación real.
Módulo de contexto de aplicación (Context)
El BeanFactory del módulo principal convierte a Spring en un contenedor y el módulo de contexto lo convierte en un marco. Este módulo amplía el concepto de BeanFactory agregando soporte para mensajes internacionalizados (I18N), propagación de eventos y validación.
Además, este módulo proporciona muchos servicios empresariales, como correo electrónico, acceso JNDI, integración EJB, servicios remotos y de programación. También se incluye soporte para la integración con marcos de plantillas como Velocity y FreeMarker.
Módulo AOP de Spring
Spring proporciona un amplio soporte para la programación orientada a aspectos en su módulo AOP. Este módulo es la base para implementar la programación de aspectos en aplicaciones Spring. Para garantizar la interoperabilidad entre Spring y otros marcos AOP, el soporte AOP de Spring se basa en la API definida por AOP Alliance. La AOP Alliance es un proyecto de código abierto cuyo objetivo es promover el uso de AOP y la interoperabilidad entre diferentes implementaciones de AOP mediante la definición de un conjunto consistente de interfaces y componentes. Puede obtener más información sobre la Alianza AOP visitando su sitio.
El módulo AOP de Spring también introduce la programación de metadatos en Spring. Al utilizar el soporte de metadatos de Spring, puede agregar anotaciones a su código fuente para indicarle a Spring dónde y cómo aplicar funciones de aspecto.
Módulo DAO y abstracción JDBC
El uso de JDBC a menudo resulta en una gran duplicación de código, obtención de la conexión, creación de declaraciones, procesamiento del conjunto de resultados y luego cierre de la conexión. Los módulos JDBC y DAO de Spring extraen este código duplicado para que pueda mantener el código de acceso a su base de datos limpio y conciso y evitar problemas causados por fallas al cerrar los recursos de la base de datos.
Este módulo también crea una capa de excepción significativa sobre los mensajes de error proporcionados por varios servidores de bases de datos. ¡Ya no tendrás que intentar descifrar mensajes de error crípticos de SQL privado!
Además, este módulo también utiliza el módulo AOP de Spring para proporcionar servicios de gestión de transacciones para objetos en aplicaciones Spring.
Módulo de integración de mapeo de objetos/relacional
Para aquellos que prefieren usar herramientas de mapeo de objetos/relacional en lugar de usar JDBC directamente, Spring proporciona un módulo ORM. Spring no intenta implementar su propia solución ORM, pero proporciona soluciones de integración para varios marcos ORM populares, incluidos Hibernate, JDO y iBATIS SQL mapeo. La gestión de transacciones de Spring admite cada uno de estos marcos ORM, incluido JDBC.
Módulo web de Spring
El módulo de contexto web se basa en el módulo de contexto de la aplicación y proporciona un contexto adecuado para las aplicaciones web. Además, este módulo también proporciona soporte orientado a servicios. Por ejemplo: implementa solicitudes de varias partes para carga de archivos y también proporciona integración de Spring y otros marcos web, como Struts y WebWork.
Marco MVC de Spring
Spring proporciona un marco MVC integral para crear aplicaciones web. Aunque Spring se puede integrar fácilmente con otros marcos MVC, como Struts, el marco MVC de Spring utiliza IoC para proporcionar una separación completa de la lógica de control y los objetos comerciales.
También le permite vincular de forma declarativa parámetros de solicitud a sus objetos comerciales. Además, el marco MVC de Spring también puede aprovechar cualquiera de los otros servicios de Spring, como la información de internacionalización y la validación.
Problema confuso de la página web de Spring Framework
Cuando se trabaja en proyectos web Java, a menudo ocurren problemas confusos y las soluciones son diferentes, algunas son simples y otras complejas si se agrega Spring; Será diferente después del marco. Puede usar el CharacterEncodingFilter que viene con el marco Spring. Esto puede reducir en gran medida nuestra carga de trabajo, que es simple, conveniente y fácil de entender. El método de configuración es el siguiente: agregue la posición del filtro. Archivo web.xml El siguiente contenido:
org.springframework.web.filter.CharacterEncodingFilter