marco de primavera | |
---|---|
Tipo de | marco de aplicación |
Desarrollador | Software fundamental |
Escrito en | Java , Kotlin y Groovy |
Sistema operativo | Software multiplataforma |
Primera edición | 1 de octubre de 2002 |
plataforma de hardware | Java |
ultima versión |
|
Estado | Activo |
Licencia | Licencia Apache 2.0 |
Sitio web | primavera.io |
Archivos multimedia en Wikimedia Commons |
Spring Framework (o Spring para abreviar ) es un marco universal de código abierto para la plataforma Java . También hay una bifurcación de .NET Framework llamada Spring.NET [2] .
La primera versión fue escrita por Rod Johnson , quien la publicó por primera vez con una edición de su libro Expert One-on-One Java EE Design and Development [3] ( Wrox Press , octubre de 2002 ).
El marco se lanzó por primera vez bajo la licencia Apache 2.0 en junio de 2003. La primera versión estable 1.0 se lanzó en marzo de 2004 . Spring 2.0 se lanzó en octubre de 2006, Spring 2.5 en noviembre de 2007, Spring 3.0 en diciembre de 2009 y Spring 3.1 en diciembre de 2011. La versión actual es 5.3.x.
Aunque Spring no proporcionó ningún modelo de programación específico, se ha generalizado en la comunidad Java principalmente como alternativa y reemplazo del modelo Enterprise JavaBeans . Spring les da a los desarrolladores de Java más libertad de diseño; además, proporciona herramientas bien documentadas y fáciles de usar para resolver los problemas que surgen al crear aplicaciones a escala empresarial.
Mientras tanto, las características del núcleo Spring son aplicables a cualquier aplicación Java, y hay muchas extensiones y mejoras para crear aplicaciones web en la plataforma Java Enterprise . Por estas razones, Spring ha ganado mucha popularidad y los desarrolladores lo reconocen como un marco estratégicamente importante.
Spring brinda soluciones a muchos de los desafíos que enfrentan los desarrolladores de Java y las organizaciones que desean construir un sistema de información basado en la plataforma Java . Debido a la amplia funcionalidad, es difícil determinar los elementos estructurales más significativos que lo componen. Spring no está completamente asociado con la plataforma Java Enterprise , a pesar de su amplia integración con ella, lo cual es una razón importante de su popularidad.
Spring es probablemente mejor conocido como una fuente de extensiones (características) necesarias para desarrollar de manera efectiva aplicaciones comerciales complejas fuera de los modelos de programación pesados que históricamente han dominado la industria. Otra ventaja es que introdujo una funcionalidad no utilizada anteriormente en los métodos de desarrollo principales de hoy, incluso fuera de la plataforma Java.
Este marco ofrece un modelo consistente y lo hace aplicable a la mayoría de los tipos de aplicaciones que ya están construidas en la plataforma Java. Se considera que Spring implementa un modelo de desarrollo basado en los mejores estándares de la industria y lo pone a disposición en muchas áreas de Java.
Spring se puede considerar como una colección de marcos más pequeños o marcos dentro de un marco. La mayoría de estos marcos pueden funcionar de forma independiente, pero brindan más funcionalidad cuando se usan juntos. Estos marcos se dividen en elementos estructurales de aplicaciones complejas típicas:
El núcleo de Spring es el contenedor Inversion of Control , que proporciona los medios para configurar y gestionar objetos Java utilizando la reflexión . El contenedor es responsable de administrar el ciclo de vida de un objeto: crear objetos, llamar a métodos de inicialización y configurar objetos uniéndolos.
Los objetos creados por un contenedor también se denominan objetos administrados ( beans ). La configuración del contenedor generalmente se realiza mediante la inyección de anotaciones (desde la versión 5 de J2SE ), pero también es posible "a la antigua" cargar archivos XML que contienen la definición del bean y proporcionan la información necesaria para crear los beans.
Los objetos se pueden obtener de dos maneras:
Spring tiene su propio marco de aplicación web MVC que no se planeó originalmente. Los desarrolladores de Spring decidieron escribirlo porque el marco Apache Struts , así como otros marcos web disponibles en ese momento, tenían una arquitectura fallida. En particular, en su opinión, no había suficiente separación entre las capas de presentación y procesamiento de consultas, así como entre la capa de procesamiento de consultas y el modelo [4] .
La clase DispatcherServlet es el controlador principal del marco y es responsable de delegar el control a varias interfaces, en todas las etapas de la realización de una solicitud HTTP. Estas interfaces deben discutirse con más detalle.
Al igual que Struts, Spring MVC es un marco orientado a solicitudes. Define interfaces estratégicas para todas las funciones de un sistema moderno basado en consultas. El objetivo de cada interfaz es ser simple y claro para que sea fácil para los usuarios volver a implementarla si así lo desean. MVC allana el camino para un código front-end más limpio. Todas las interfaces están estrechamente relacionadas con la API de Servlet . Algunos ven esta conexión como una falla de los desarrolladores de Spring para proporcionar una abstracción de mayor nivel para las aplicaciones web. Sin embargo, este enlace deja las características de la API de Servlet disponibles para los desarrolladores, al mismo tiempo que facilita el trabajo. Las interfaces más importantes definidas por Spring MVC se enumeran a continuación:
Spring MVC proporciona al desarrollador las siguientes características:
Las aplicaciones web pueden usar varias partes de Spring, no solo Spring MVC.
Spring expone su capa de acceso a la base de datos a través de JDBC . Además, es compatible con todos los ORM populares : Hibernate , JPA , JDO , EclipseLink , iBatis , Apache OJB , Apache Cayenne , etc.
Para todos estos marcos, Spring proporciona las siguientes características:
El marco de gestión de transacciones en Spring trae un mecanismo de abstracción a la plataforma Java. Las principales características de estas abstracciones son:
Spring Roo es un marco de "acuerdo antes de la configuración" para crear rápidamente aplicaciones comerciales.
Se puede utilizar con:
Spring Integration es un marco para JEE que proporciona la funcionalidad necesaria para enviar mensajes o construir una arquitectura basada en eventos...
El 29 de febrero de 2012, VMware lanzó la integración de Spring con el producto Apache Hadoop. El nuevo marco Spring Hadoop [5] combina las capacidades de Spring Framework con la capacidad de Hadoop , lo que permite a los desarrolladores crear aplicaciones que escalan desde un solo servidor a miles y brindan alta disponibilidad a través del software en lugar del hardware. Al integrar Hadoop Framework basado en Java , una plataforma de código abierto para el procesamiento distribuido de grandes conjuntos de datos en clústeres de computadoras usando un modelo de programación simple, con el marco de desarrollo de aplicaciones Spring Java/JEE, VMware ha creado un proyecto que se enmarca completamente en el "paraguas" de Spring Data [6] [7] .
Entre las características del nuevo marco: