2. Grupo No. 4
Frans Josehp Giron Casasola 092-05-483
Jose Angel Herrera 092-00-772
Mario Rudy Gómez Marroquín 092-06-14969
Armando Monzon 092-98-5413
Marco Orozco 092-03-12056
Jorge Mario Pérez Bac 092-01-3320
Mónica A. Lemus Rodriguez 092-06-569
Karla Sequen Gonzalez 092-06-689
Edwin Rodolfo Barrios Morales 092-98-1929
Johann Roaldo Leon 092-01-0949
3. Introducción e historia
Framework de aplicación desarrollado para
aplicaciones escritas en el lenguaje de
programación Java.
Fue creado gracias a la colaboración de grandes
programadores y lideres del proyecto Rod
Johnson y Jurgen Holler.
Con su experiencia en el desarrollo de
Aplicaciones J2EE (Java 2 Enterprise Editions), EJB
(Enterprise JavaBeans), Servlets y JSP (Java Server
Pages), lograron combinar dichas herramientas y
otras más en un solo paquete, para brindar una
estructura más sólida y un mejor soporte para este
tipo de aplicaciones.
4. Spring fue creado basado en los
siguientes principios:
El buen diseño es más importante que la
tecnología subyacente
Los JavaBeans ligados de una manera más
libre entre interfaces es un buen modelo.
El código debe ser fácil de probar.
5. Características
Es un framework Java de Software Libre, liviano de
aplicación (también existe actualmente una
versión para .NET)
Su principal característica es brindar un factory de
objetos basado en la Inyeccion De Dependencia.
Puede emplearse en cualquier aplicación hecha
en Java, existen muchas extensiones y mejoras
para construir aplicaciones basadas en web por
encima de la plataforma Java EE.
Ofrece los mismos servicios de EJB pero
simplificando el modelo de programación.
6. Estructura de Spring
Spring es un framework modular que cuenta
con una arquitectura organizada en cerca
de 20 módulos independientes, lo cual
permite tomar y ocupar únicamente las
partes que interesen para el proyecto.
Estos módulos están agrupados en:
contenedor central, Acceso a datos e
integración, Web, Programación orientada a
aspectos, instrumentación y Pruebas.
10. CONTENEDOR CENTRAL
Este módulo consiste en: el núcleo, los
Beans, contexto y módulos del lenguaje de
expresiones.
El núcleo y los beans proporcionan las partes
fundamentales de la estructura, incluyendo el IoC
y las características de la inyección de
dependencia.
El BeanFactory es una implementación sofisticada
del patrón de la fábrica. Se elimina la necesidad
de programación de singletons (método más
utilizado) y le permite desacoplar la configuración
y las especificaciones de las dependencias de la
lógica real del programa.
11. Inversión de control
Conocido como IoC. Se encarga se separar
del código de la aplicación, lo aspectos de
configuración y las especificaciones de
dependencia del framework.
Utilizando el principio Hollywood “no me
llames, yo te llamaré a ti” en éste termino
sería: en lugar de que el código de la
aplicación llame a una clase de una líbreria
un framework que utiliza IoC llama a código.
12. Inyección de dependencia
Es una forma de inversión de control. En
lugar de que el código de la aplicación
utilice el API del framework para resolver
las dependencias, las clases de la
aplicación muestran sus dependencias a
través de métodos que el framework
puede llamar con el valor apropiado en
tiempo de ejecución, basado en la
configuración.
13. Contexto provee de herramientas para
acceder a los beans de una manera
elegante, similar a un registro JNDI. El
paquete de contexto hereda sus
características del paquete de beans y
añade soporte para mensajería de texto,
como son resource bundles (para
internacionalización), propagación de
eventos, carga de recursos y creación
transparente de contextos por contenedores
(como el contenedor de servlets, por
ejemplo).
14. Lenguaje de expresión proporciona un lenguaje de
expresiones de gran alcance para consultar y manipular
un gráfico de objetos en tiempo de ejecución.
Es una extensión del lenguaje de expresión unificada
(unificada EL) según se especifica en la especificación JSP
2.1.
El lenguaje soporta los valores de las propiedades get and
set, propiedad de asignación, métodos de invocación, el
acceso a los arrays, colecciones e indizadores, operadores
lógicos y aritméticos, variables con nombre y la
recuperación de objetos por nombre del contenedor IoC
de Spring. También es compatible con lista de proyección
y selección, así como lista común de agregaciones.
15. PROGRAMACION ORIENTADA
A ASPECTOS
Provee una implementación de
programación orientada a aspectos
compatible con AOP Alliance, permitiendo
definir pointcuts e interceptores de métodos
para desacoplar el código de una manera
limpia implementando funcionalidad que por
lógica y claridad debería estar separada.
Usando metadatos a nivel de código fuente
se pueden incorporar diversos tipos de
información y comportamiento al código, un
poco similar a los atributos de .NET
16. ACCESO A DATOS /
INTEGRACIÓN
Consiste en JDBC, ORM, OXM, JMS y
transacciones modulares.
JDBC, provee una capa de abstracción
de JDBC que elimina la necesidad de
teclear código JDBC tedioso y
redundante, así como el parseo de
códigos de error específicos de cada
proveedor de base de datos.
17. ORM, provee capas de integración para
APIs de mapeo objeto -
relacional, incluyendo, JDO, Hibernate e
iBatis. Usando el paquete ORM es posible
usar esos mapeadores en conjunto con
otras características que Spring
ofrece, como la administración de
transacciones mencionada con
anterioridad.
18. OXM proporciona una capa de abstracción que
apoya Objeto / XML implementaciones de
asignación para JAXB, Castor, XMLBeans, JiBX y
XStream.
Java Messaging Service (JMS) contiene las
características de los mensajes de productores y
consumidores.
El módulo de transacciones provee de una
manera de administrar transacciones tanto
declarativas como programáticas, no solo para
clases que implementen interfaces
especiales, pero para todos sus POJOs (por sus
siglas en inglés, Viejos y simples objetos java).
19. WEB
Este módulo proporciona funciones de
integración orientados a web básicos como
funcionalidad multiparte de carga de
archivos y la inicialización del contenedor IoC
usando oyentes servlet y un contexto
orientado a la aplicación web. También
contiene las partes relacionadas con la web
de soporte de comunicación remota de
Spring.
Cuando se usa Spring junto con WebWork o
Struts, este es el paquete que te permite una
integración sencilla.
20. Web MVC provee de una implementación Modelo
- Vista - Controlador para las aplicaciones web. La
implementación de Spring MVC permite una
separación entre código de modelo de dominio y
las formas web y permite el uso de otras
características de Spring Framework como lo es la
validación.
Web Struts contiene las clases de apoyo para la
integración de un clásico de capa web Struts dentro
de una aplicación Spring. Tomar en cuenta que este
soporte está obsoleto desde Spring 3.0.
Web-portlets proporciona la implementación MVC
para ser utilizado en un entorno de portlet y refleja la
funcionalidad del módulo Web-Servlet.
21. PRUEBAS
El módulo de prueba apoya la prueba de los
componentes del resorte con JUnit o TestNG.
Se proporciona una carga constante de
ApplicationContexts de Spring y el
almacenamiento en caché de esos
contextos.
También proporciona los objetos de imitación
que se puede utilizar para probar el código
en el aislamiento.