Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por




descargar 23.57 Kb.
títuloSpring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por
fecha de publicación07.03.2016
tamaño23.57 Kb.
tipoDocumentos
SPRING

Spring es un framework basado en J2EE que implementa el modelo MVC. Este framework fue lanzado bajo la licencia Apache 2.0 Licence en junio de 2003 por Rod Jonhson, su creador. Durante su lanzamiento los desarrolladores consideraban Spring un avance con respecto al modelo de programación que implementaba Enterprise JavaBeans (EJB) . Gran parte de la popularidad de Spring se basa en la implementación del modelo MVC que hace uno de sus módulos. Spring logró popularizar en su momento buenas técnicas de programación al estar implementado usando distinto patrones de diseño.
Una de las características que ofrece Spring que ningún otro producto parecido a él del mercado ofrece es la Inversión de Control (IoC) por medio de un contenedor que se encarga de gestionar las instancias y la Programación Orientada a Aspectos (POA)
La Inversión de Control es un método de programación en el que el flujo de ejecución de un programa se invierte respecto al os modelos tradicionales, en los que la interacción se expresa de forma imperativa, haciendo llamadas a procedimientos o funciones. En la Inversión de Control se especifican respuestas deseadas a sucesos o o solicitudes de datos concretas, dejando que algún tipo de entidad o arquitectura externa lleve a cabo las acciones de control que se requieran en el orden necesario y para el conjunto de sucesos que tengan que ocurrir. Es el principio subyacente a la técnica de Inyección de Dependencias, aunque no son exactamente lo mismo y no hay que confundirlos.
La Programación Orientada a Aspectos es un modelo de programación que implementa una solución al problema de capturar las partes de un sistema que los modelos de programación habituales obligan a que estén repartidos a los largo de diferentes módulos del sistema. Estos fragmentos que afectan a distintos módulos son llamados aspectos y los problemas que solucionan, problemas cruzados. Usando un lenguaje orientado a aspectos podemos capturar estas dependencias en módulos individuales, obteniendo un sistema independiente de ellos y podemos utilizarlos o no sin tocar el código del sistema básico, preservando la integridad de las operaciones básicas.
Spring proporciona las siguientes características:


  • Una potente gestión de configuración basada en JavaBeans, aplicando los principios de Inversión de Control. Esto hace que la configuración de aplicaciones sea rápida y sencilla. Ya no es necesario tener Singletons ni ficheros de configuración. Esta factoría de Beans puede ser usada en cualquier entorno, desde Applets hasta contenedores J2EE. Esta definición de beans se hacen en lo que se llama el contexto de aplicaciones (Application-context en nuestra aplicación web)




  • Una capa genérica de abstracción para la gestión de transacciones, permitiendo gestores de transacción “enchufables” (pluggables) y haciendo sencilla la demarcación de transacciones sin tratarlas a bajo nivel. Se incluyen estrategias genéricas para JTA y un único JDBC DataSource. El soporte de transacciones de Spring no está atado a entornos J2EE.




  • Una capa de abstracción JDBC que ofrece una significativa jerarquía de excepciones, esto simplifica el manejo de errores y reduce la cantidad de código necesario.




  • Integración con Hibernate, JDO, iBatis SQL Maps en términos de soporte a implementaciones DAO y estrategias con transacciones. Ofrece un soporte especial para Hibernate añadiendo convenientes características de Inversión de control lo que soluciona mucho de los problemas básicos de la integración con Hibernate. Todo ello cumpliendo con las transacciones genéricas de Spring y la jerarquía de excepciones DAO.




  • Funcionalidad de Programación Orientada a Aspectos totalmente integrada en la gestión de configuración de Spring. Se puede aplicar este paradigma de programación a cualquier objeto gestionado por Spring, añadiendo aspectos como la gestión de transacciones declarativa. Con Spring se puede tener gestión de transacciones declarativa sin EJB ni JTA, si se utiliza una única base de datos en un contenedor web sin soporte JTA.




  • Un framework MVC construido sobre el núcleo de Spring. Este framework es altamente configurable vía interfaces y permite el uso de múltiples tecnologías para la capa vista como pueden ser JSP, velocity, Tiles, iText, POI. De cualquier manera una capa modelo realizada con Spring puede ser fácilmente utilizada con una capa web basa en cualquier otro famework MVC como por ejemplo Struts, WebWorks o Tapestry.


Toda esta funcionalidad puede usarse en cualquier servidor J2EE, y la mayoría de ella ni siquiera requiere su uso. El objetivo central de Spring es permitir que objetos de negocio y de acceso a datos sean reusables, no atados a servicios J2EE específicos. Estos objetos pueden ser reutilizados tanto en entornos J2EE (web o EJB), aplicaciones standalone, entornos de pruebas,... sin ningún problema.

Otra característica especial que tiene Spring es su capacidad para actuar como un “pegamento” tecnológico facilitando la integración de tecnologías que por si sola sería muy complicado integrar.

La arquitectura de Spring se es una arquitectura en capas donde cada capa está compuesta por varios módulos. El siguiente esquema extraído de la documentación oficial de Spring ilustra la arquitectura básica del framework.




Spring está organizado en 20 módulos. Estos módulos están agrupados en las capas "Core Container", "Data access/Integration", web, AOP, "Instrumentation" y "Test".

Capa core container:

El core container está compuesto por los módulos Core, Beans, Context y Expression language.


Core y Beans proporcionan la parte fundamental del framework, incluyendo la Inversión de Control y la Inyección de dependencias. Bean Factory es una sofisticada implementación  del patrón Factory. Esta implementación elimina la necesidad de implementar Sigletons y permite desacoplar la configuración de la especificación de dependencias del modelo lógico.


Context se construye a partir de la sólida base que le proporciona los módulos Core y Beans. Este módulo hereda características de Beans y añade soporte para internacionalización, propagación de eventos y creación transparente de contextos, como por ejemplo el Servlet container. Context solo tiene soporte para características de JEE como EJB y JMX.


Expression Language proporciona un poderoso lenguaje de expresiones para manipular objetos en tiempo de ejecución. Es una extensión del Lenguaje de Expresiones unificado (unified EL) especificado en la especificación de JSP 2.1. El lenguaje soporta métodos getter y setter, asignación de propiedades, invocación de métodos, acceso a arrays de contextos, colecciones e índices, operadores lógicos y aritméticos y creación de variables del contenedor IoC de Spring.
Capa Data Access/Integration
La capa Data access/integracion está compuesto por los módulos JDBC, ORM, OXM, JMS y Transaccion.

JDBC proporciona proporciona una abstracción del modelo JDBC y elimina la necesidad de usar el JDBC básico que proporciona JAVA para acceder a la base de datos y controlar los errores.

ORM proporciona una capa de integración para las API's de mapeo entre objetos y el modelo relacional. Incluye integración con Hibernate, JPA, JDO e iBatis. Este módulo permite integrar los anteriores frameworks con la funcionalidad y las características que ofrecen Spring.

OXM proporciona una capa de abstracción que soporta mapeo Object/XML implementado por JAXB, Castor, XMLBeans, JiBX, y Xstream.


JSM proporciona característica para enviar y recibir mensajes.


Transaction proporciona soporte para transacciones de gestión de transacciones programáticas y declarativas para las clases que implementan interfaces especiales y para todos sus POJOs.

Capa Web
La capa Web está formada por los módulos Web, Web-Servlet, Web-Struts y Web-Porlet.

Web provee un modelo básico orientado a la integración y la inicialización del contenedor IoC usando "servlet containers" y contexto de aplicaciones orientado a la web.



Web-Servlet contiene la implementación del modelo MVC de Spring para aplicaciones web.

Web-Struts proporciona la integración con el framework Struts. Esta integración, sin embargo se ha quedado obsoleta con el nuevo Spring3.0 lanzado recientemente. Ahora la integración se hace con Struts2.

Web-Portlet proporciona la implementación MVC para desarrollar portlets.


Capa aop/intrumentation
AOP proporciona la implementación para definir el modelo de programación orientado a aspectos.

Intrumentation proporciona apoyo instrumental a la clase y a las implementaciones del cargador de clases para que pueda ser utilizado en aplicaciones servlet.


Capa test


Test proporciona el testeo de los componentes de Spring con JUnit o TestNG.


Appfuse: Una forma rápida de generar proyectos Spring
Appfuse es un framework que genera proyectos web basados en J2EE apoyándose en Maven. Entre los distintos tipos de proyectos web que genera se encuentran los proyectos basados en Spring y actualmente es ayudándose por este framework la forma mas sencilla de crear una proyecto base orientado en Spring ya que hace automáticamente toda la integración con una base de datos e incluso con servicios tan comunes como el registro y la autenticación de usuarios.
Appfuse proporciona el esqueleto del proyecto y lo adapta para que el programador pueda seguir desarrollándolo en Eclipse. Para crear un proyecto nuevo se basa en Maven 2.0 para bajar los paquetes necesarios y resolver las dependencias que se puedan generar en un proyecto basico. Para la gestion de la base de datos usa hibernate con el dialecto MySql aunque esto se puede cambiar facilmete una vez generado el proyecto.


Conclusiones:
Spring, al contrario que php, implementa tecnología Java y al contrario que php facilita la inmersión en el modelo MVC. Sin embargo, como le pasaba al equipo php + gwt la creación de un proyecto Spring es sumamente complicada. De hecho, casi nadie crea un proyecto Spring “a pelo”. Para crear un proyecto Spring se suele usar Maven y Appfuse. Esta herramienta es fácil de usar sin embargo crea un proyecto enorme con muchas librerías, la mayoría de ellas inútiles para nuestro caso.
Spring incorpora una tecnología innovadora su inversión de control y la programación orientada a aspectos es ideal para aplicaciones grandes que implementan servicios web y necesitan integrarse con otros elementos externos. Sin embargo, nuestra aplicación va a a ser pequeña y desarrollada por nosotras al 100%. No necesitamos integrarla a elementos externos y desde luego la comodidad de disponer de inversión de control no compensa al esfuerzo de aprender esta tecnología, muy complicada, a pesar de lo que dicen los creadores en su página oficial, no compensa. En cambio, algo que sin duda nos sería muy útil como algún tipo de implementación para la vista (Como las Struts tags o los elementos de gwt) no existe de forma natural en Spring.












similar:

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconEste trabajo fué recibido el 5 de Marzo de 2003 y aceptado para ser...

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconHacia un modelo educativo basado en nuevos entornos y ambientes de

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconResumen este proyecto se realizó bajo la investigación cualitativa...

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconEl naturalismo fue un estilo artístico, sobre todo literario, basado...

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconLa elección del tema ya mencionado en la presentación de este trabajo...

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconResumen la empresa administradora del Complejo metalúrgico de La...

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconLicencia y autorizado por el departamento de tejas de licencias y...

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconEste refresco de fama mundial fue inventado el 5 de mayo

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconY desde Junio 11 de 2007 se emitió por la emisora ondas e la montañA,...

Spring es un framework basado en J2ee que implementa el modelo mvc. Este framework fue lanzado bajo la licencia Apache 0 Licence en junio de 2003 por iconEscultura bajo relieve por Totila Albert, 1962




Todos los derechos reservados. Copyright © 2019
contactos
b.se-todo.com