Introducción a Spring Framework

Introducción

Antes de la llegada de Enterprise Java Beans (EJB), los desarrolladores de Java necesitaban usar JavaBeans para crear aplicaciones web. Aunque JavaBeans ayudó en el desarrollo de los componentes de la interfaz de usuario (UI), no pudieron proporcionar servicios, como la gestión de transacciones y la seguridad, que eran necesarios para desarrollar aplicaciones empresariales sólidas y seguras. La llegada de EJB se vio como una solución a este problema. EJB amplía los componentes de Java, como los componentes web y empresariales, y proporciona servicios que ayudan en el desarrollo de aplicaciones empresariales. Sin embargo, desarrollar una aplicación empresarial con EJB no fue fácil, ya que el desarrollador necesitaba realizar varias tareas, como crear interfaces domésticas y remotas e implementar métodos de devolución de llamada del ciclo de vida que conducen a la complejidad de proporcionar código para EJB. Debido a esta complicación,

El marco Spring (que comúnmente se conoce como Spring) ha surgido como una solución a todas estas complicaciones. Este marco utiliza varias técnicas nuevas, como la programación orientada a aspectos (AOP), el objeto Java antiguo simple (POJO) y la inyección de dependencia (DI). , para desarrollar aplicaciones empresariales, eliminando así las complejidades involucradas en el desarrollo de aplicaciones empresariales utilizando EJB, Spring es un marco ligero de código abierto que permite a los desarrolladores de Java EE 7 crear aplicaciones empresariales simples, confiables y escalables. Este marco se centra principalmente en proporcionar varias formas de ayudarlo a administrar sus objetos comerciales. Hizo que el desarrollo de aplicaciones web fuera mucho más fácil en comparación con los marcos Java clásicos y las interfaces de programación de aplicaciones (API), como la conectividad de base de datos Java (JDBC), JavaServer Pages (JSP) y Java Servlet.

El framework Spring se puede considerar como una colección de sub-frameworks, también llamados capas, como Spring AOP. Mapeo relacional de objetos Spring (Spring ORM). Spring Web Flow y Spring Web MVC. Es un marco de aplicación ligero que se utiliza para desarrollar aplicaciones empresariales. Puede usar cualquiera de estos módulos por separado mientras construye una aplicación web. Los módulos también se pueden agrupar para proporcionar mejores funcionalidades en una aplicación Web. Spring framework está débilmente acoplado debido a la inyección de dependencia.

Características de Spring Framework

Las características del marco Spring, como IoC, AOP y gestión de transacciones, lo hacen único entre la lista de marcos. Algunas de las características más importantes del framework Spring son las siguientes:

  • Contenedor IoC: 
    hace referencia al contenedor principal que usa el patrón DI o IoC para proporcionar implícitamente una referencia de objeto en una clase durante el tiempo de ejecución. Este patrón actúa como una alternativa al patrón del localizador de servicios. El contenedor IoC contiene código ensamblador que maneja la gestión de la configuración de los objetos de la aplicación.
    Spring Framework proporciona dos paquetes, a saber, org.springframework.beans y org.springframework.context, que ayudan a proporcionar la funcionalidad del contenedor IoC.
  • Marco de acceso a datos: 
    permite a los desarrolladores usar API de persistencia, como JDBC e Hibernate, para almacenar datos de persistencia en la base de datos. Ayuda a resolver varios problemas del desarrollador, por ejemplo, cómo interactuar con una conexión de base de datos, cómo asegurarse de que la conexión esté cerrada, cómo tratar las excepciones y cómo implementar la gestión de transacciones. También permite a los desarrolladores escribir fácilmente código para acceder a los datos de persistencia en toda la aplicación.
  • Marco Spring MVC: 
    le permite crear aplicaciones web basadas en la arquitectura MVC. Todas las requests realizadas por un usuario primero pasan por el controlador y luego se envían a diferentes vistas, es decir, a diferentes páginas JSP o Servlets. Las funciones de manejo y validación de formularios del marco Spring MVC se pueden integrar fácilmente con todas las tecnologías de visualización populares, como ISP, Jasper Report, FreeMarker y Velocity.
  • Gestión de transacciones: 
    ayuda a manejar la gestión de transacciones de una aplicación sin afectar su código. Este marco proporciona API de transacción de Java (JTA) para transacciones globales administradas por un servidor de aplicaciones y transacciones locales administradas mediante JDBC Hibernate, Java Data Objects (JDO) u otras API de acceso a datos. Permite al desarrollador modelar una amplia gama de transacciones sobre la base de la gestión de transacciones programáticas y declarativas de Spring.
  • Spring Web Service: 
    genera puntos finales y definiciones de servicios web basados ​​en clases de Java, pero es difícil administrarlos en una aplicación. Para resolver este problema, Spring Web Service proporciona enfoques basados ​​en capas que se administran por separado mediante el análisis del lenguaje de marcado extensible (XML) (la técnica de lectura y manipulación de XML). Spring proporciona un mapeo efectivo para transmitir la solicitud de mensaje XML entrante a un objeto y al desarrollador para distribuir fácilmente el mensaje XML (objeto) entre dos máquinas.
  • Capa de abstracción JDBC: 
    ayuda a los usuarios a manejar errores de una manera fácil y eficiente. El código de programación JDBC se puede reducir cuando esta capa de abstracción se implementa en una aplicación web. Esta capa maneja excepciones como DriverNotFound. Todas las SQLExceptions se traducen a la clase DataAccessException. La excepción de acceso a datos de Spring no es específica de JDBC y, por lo tanto, los objetos de acceso a datos (DAO) no están vinculados solo a JDBC.
  • Marco Spring TestContext: 
    proporciona instalaciones de pruebas unitarias y de integración para las aplicaciones Spring. Además, el marco Spring TestContext proporciona funcionalidades de prueba de integración específicas, como la gestión de contexto y el almacenamiento en caché DI de dispositivos de prueba, y la gestión de prueba transaccional con semántica de reversión predeterminada.

Evolución de Spring Framework

Spring Framework se lanzó por primera vez en 2004. Después de eso, ha habido una importante revisión importante, como Spring 2.0 proporcionó espacios de nombres XML y soporte para AspectJ, Spring 2.5 proporcionó una configuración basada en anotaciones, Spring 3.0 proporcionó un modelo @Configuration basado en Java. La última versión de Spring Framework es 4.0. se lanza con soporte para las tecnologías Java 8 y Java EE 7. Aunque aún puede usar Spring con una versión anterior de Java, el requisito mínimo está restringido a Java SE 6. Spring 4.0 también es compatible con las tecnologías Java EE 7, como el servicio de mensajes de Java (JMS) 2.0, la API de persistencia de Java (JPA) 2.1, Bean validación 1.1, servlet 3.1 y JCache.

Arquitectura Spring Framework

Spring Framework Architecture

Spring Framework consta de siete módulos que se muestran en la figura anterior. Estos módulos son Spring Core, Spring AOP, Spring Web MVC, Spring DAO, Spring ORM, Spring context y Spring Web flow. Estos módulos proporcionan diferentes plataformas para desarrollar diferentes aplicaciones empresariales; por ejemplo, puede usar el módulo Spring Web MVC para desarrollar aplicaciones basadas en MVC.

Módulos de Spring Framework

  • Módulo de núcleo de resorte: 
    El módulo Spring Core, que es el componente central del marco Spring, proporciona el contenedor IoC. Hay dos tipos de implementaciones del contenedor Spring, a saber, la fábrica de frijoles y el contexto de la aplicación. Bean factory se define mediante la interfaz org.springframework.beans.factory.BeanFactory y actúa como un contenedor para beans. El contenedor Bean factory le permite desacoplar la configuración y especificación de dependencias de la lógica del programa. En el marco Spring, la fábrica Bean actúa como un contenedor IoC central que es responsable de instanciar los objetos de la aplicación. También configura y ensambla las dependencias entre estos objetos. Existen numerosas implementaciones de la interfaz BeanFactory. La clase XmlBeanFactory es la implementación más común de la interfaz BeanFactory.
  • Módulo Spring AOP: 
    similar a la programación orientada a objetos (OOP), que divide las aplicaciones en una jerarquía de objetos, AOP divide los programas en aspectos o preocupaciones. El módulo Spring AOP le permite implementar preocupaciones o aspectos en una aplicación Spring en Spring AOP, los aspectos son los frijoles Spring regulares o las clases regulares anotadas con la anotación @Aspect. Estos aspectos ayudan en la gestión de transacciones y el registro y la supervisión de fallas de una aplicación. Por ejemplo, la gestión de transacciones es necesaria en operaciones bancarias, como la transferencia de una cantidad de una cuenta a otra. El módulo Spring AOP proporciona una capa de abstracción de gestión de transacciones que se puede aplicar a las API de transacciones.
  • Módulo Spring ORM: 
    El módulo Spring ORM se utiliza para acceder a datos de bases de datos en una aplicación. Proporciona API para manipular bases de datos con JDO, Hibernate e iBatis. Spring ORM es compatible con DAO, lo que proporciona una forma conveniente de crear las siguientes soluciones ORM basadas en DAO:
    • Gestión simple de transacciones declarativas
    • Manejo transparente de excepciones
    • Clases de plantilla ligeras y seguras para subprocesos
    • Clases de apoyo DAO
    • Administracion de recursos
  • Módulo Spring Web MVC: 
    El módulo Web MVC de Spring implementa la arquitectura MVC para crear aplicaciones web. Separa el código de los componentes de modelo y vista de una aplicación web. En Spring MVC, cuando se genera una solicitud desde el navegador, primero va a la clase DispatcherServlet (controlador frontal), que envía la solicitud a un controlador (clase SimpleFormController o clase AbstractWizardformController) mediante un conjunto de asignaciones de controladores. El controlador extrae y procesa la información incrustada en una solicitud y envía el resultado a la clase DispatcherServlet en forma de objeto modelo. Finalmente, la clase DispatcherServlet usa clases ViewResolver para enviar los resultados a una vista, que muestra estos resultados a los usuarios.
  • Módulo Spring Web Flow: 
    El módulo Spring Web Flow es una extensión del módulo Spring Web MVC. El marco Spring Web MVC proporciona controladores de formulario, como la clase SimpleFormController y la clase AbstractWizardFormController, para implementar un flujo de trabajo predefinido. Spring Web Flow ayuda a definir el archivo XML o la clase Java que administra el flujo de trabajo entre diferentes páginas de una aplicación web. Spring Web Flow se distribuye por separado y se puede descargar a través del sitio web http://www.springframework.org .
    Las siguientes son las ventajas de Spring Web Flow:
    • El flujo entre diferentes interfaces de usuario de la aplicación se proporciona claramente al definir el flujo web en un archivo XML.
    • Las definiciones de flujo web lo ayudan a dividir virtualmente una aplicación en diferentes módulos y reutilizar estos módulos en múltiples situaciones.
  • Módulo Spring Web DAO: 
    El paquete DAO en el marco Spring proporciona soporte DAO mediante el uso de tecnologías de acceso a datos como JDBC, Hibernate o JDO. Este módulo introduce una capa de abstracción JDBC al eliminar la necesidad de proporcionar la tediosa codificación JDBC. También proporciona clases de gestión de transacciones programáticas y declarativas. El paquete Spring DAO es compatible con la conectividad heterogénea de bases de datos Java y el mapeo O/R, lo que ayuda a Spring a trabajar con varias tecnologías de acceso a datos. Para un acceso fácil y rápido a los recursos de la base de datos, Spring Framework proporciona clases base DAO abstractas. Hay múltiples implementaciones disponibles para cada tecnología de acceso a datos compatible con Spring Framework. Por ejemplo, en JDBC, la clase JdbcDaoSupport y sus métodos se utilizan para acceder a la instancia de DataSource y una instancia de JdbcTemplate preconfigurada.
  • Módulo de contexto de la aplicación Spring: 
    El módulo de contexto de la aplicación Spring se basa en el módulo principal. El contexto de aplicación org.springframework.context.ApplicationContext es una interfaz de BeanFactory. Este módulo deriva su característica del paquete org.springframework.beans y también admite funcionalidades como internacionalización (I18N), validación, propagación de eventos y carga de recursos. El contexto de la aplicación implementa la interfaz MessageSource y proporciona la funcionalidad de mensajería a una aplicación.

Cómo descargar e instalar Spring Framework

  1. Para descargar Spring Repository, debe visitar https://repo.spring.io/release/org/springframework/spring/ . En este sitio web, encontrará diferentes versiones de Spring Framework. Tienes que hacer clic en la última versión del marco. Aquí encontrará tres archivos que son:
    • spring-framework-5.1.4.RELEASE-dist.zip
    • spring-framework-5.1.4.RELEASE-docs.zip
    • spring-framework-5.1.4.RELEASE-esquema.zip
  2. Para la instalación, debe extraer el archivo «spring-framework-5.1.4.RELEASE-dist.zip» en su unidad C. Ahora puede ejecutar su aplicación en Spring Framework.

Publicación traducida automáticamente

Artículo escrito por romin_vaghani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *