28
© Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray [email protected]

© Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray [email protected]

Embed Size (px)

Citation preview

Page 1: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Introducción a Spring Sesión 1: Introducción y teoría

Juan Irungaray

[email protected]

Page 2: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Agenda

Introducción

Componentes de Spring

Inversión de control / Inyección de dependencias

Configurando Spring: Metadata

Instanciando un Bean

Dependencias

Autowiring

Scopes

Herencia

Page 3: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Introducción

Aplicaciones OOArquitecturas variadas

Complejidades variadas

Gran cantidad de herramientas, frameworks y librerías

SpringFacilita la construcción de aplicaciones

Promueve el uso de buenas practicas

Arquitectura probada, madura y estable

Facilidad de extensión y customización

Page 4: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Componentes de Spring

Page 5: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Inversión de control

Metadata

Container Spring (BeanFactory)

Objetos listos para usar

Objetos de negocio (POJOs)

Page 6: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Metadata

Page 7: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Constructor Se especifica la clase del objeto con el atributo “class”

El objeto creado es una instancia de esta clase

Instanciando un Bean - Constructor

Page 8: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Instanciando un Bean - Factory

Factory – Método de claseSe especifica la clase Factory con el atributo “class”

Se especifica el método que construye con el atributo “factory-method”

Factory – Método de instanciaNo se define atributo “class”

Se especifica el nombre de la instancia de Factory con el atributo “factory-bean”

Se especifica el método que construye con el atributo “factory-method”

Page 9: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Dependencias

Inyección de dependenciasArgumento del constructor

Argumento del método factory

Propiedades a ser insertadas

Valores posiblesValores directos

Colaboradores

Beans internos

Colecciones (List , Set, Map, Properties)

Null

Page 10: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Autowiring

Se puede configurar particular en el elemento <bean> o en general en el elemento <beans>

Reduce la necesidad de especificar alguna propiedades o argumentos de constructores.

Facilita el mantenimiento y la “evolución automática” de la configuración.

Configuraciones posiblesNo

byName

byType

Constructor

Autodetect

Una propiedad o argumento especificado siempre tiene prioridad sobre un valor “autowired”

Page 11: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Scopes

Configuran como maneja Spring las instancias de una clase

Existen 5 valores out of the box:Singleton

Prototype

Request (Solo para aplicaciones web)

Session (Solo para aplicaciones web)

Global Session (Solo para aplicaciones web-portlet)

Page 12: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Herencia

Permite extender y reutilizar definiciones de beans

Bean Padre

Bean Hijo

La herencia de beans no representa ninguna relación entre los objetos que estos beans generan

Page 13: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Repaso

Spring es un framework líder, utilizado por empresas de todo tamaño.

Spring permite componer una aplicación utilizando únicamente POJOs

Facilita la integración entre tecnologías.

Es una implementación de mejores practicas de programación.

Esta diseñado para utilizar únicamente lo que uno necesita.

Facilita la codificación y mejora la mantenibilidad de la aplicación(DI).

Desacopla la lógica de la configuración.

Page 14: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Agenda

@nnotations

Capa de acceso de datosDAO Support

Utilizando JDBC

Integración con ORMs (Hibernate)

Web MVC Framework

Controllers

Handler Mappings

View Resolvers

Integracion con Struts

Page 15: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

@nnotations@Required@Autowired@Component, @Service , @Repository & @Controller@Resource@PostConstruct & @PreDestroy

Page 16: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

DAO Support

Facilitar el acceso a tecnologías como JDBC, Hibernate, o JDO

Provee una jerarquía de Excepciones consistente

Provee clases homologas para acceder a las diferentes tecnologíasJdbcDaoSupport

HibernateDaoSupport

JdoDaoSupport

JpaDaoSupport

Page 17: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

DAO - JDBC

Tareas necesarias en una conexión JDBC:1. Definir parámetro de conexión

2. Abrir la conexión

3. Especificar un Statement

4. Preparar y ejecutar dicho Statement

5. Iterar sobre los resultados obtenidos

6. Hacer la tarea necesaria para cada iteracion del resultado

7. Manejar excepciones

8. Manejar transacciones

9. Cerrar conexión

Page 18: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

ORM

Facilidad de testing

Excepciones traducidas

Manejo de recursos generales

Manejo de transacciones integrados

Page 19: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Hibernate

HibernateTemplateHibernateDaoSupport

Page 20: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Web MVC

El archivo de contexto se debe llamar <nombre del servlet>-servlet.xml y encontrarse en el directorio WEB-INF

Page 21: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Web MVC framework

Separación clara de roles

Configuración de framework y aplicación a través de JavaBeans

Adaptabilidad (No intrusivo)

Reutilización de código de negocio

Validación y binding customizables

Mapeo de URLs y resolución de vistas customizable

Soporte I18N

Beans con Scope vinculados a request o sesiones HTTP.

Controller

Handler Mappings

View Resolvers

Locale Resolvers

Theme Resolvers

Multipart File Resolvers

Exception Handler Resolvers

Page 22: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Controllers

Interpretan el input del usuario y lo transforman en un modelo a ser representado por la vista

MultiActionController

AbstractCommandController

AbstractFormController

SimpleFromController

AbstractWizardFormController

Utilizando la annotation @Controller se puede utilizar cualquier clase como controller, no hace implementar o extender de nada

Page 23: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Handler Mappings

SimpleUrlHandlerMappingBeanNameUrlHandlerMapping

El uso de handlerMappings se puede obviar utilizando annotations. Aunque se pueden combinar ambos estilos no es recomendado.

Page 24: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

View Resolvers

AbstractCachingViewResolver

XmlViewResolver

ResourceBundleViewResolver

UrlBasedViewResolver

InternalResourceViewResolver

VelocityViewResolver / FreeMarkerViewResolver

Page 25: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Integracion con Struts

Se utiliza Spring como si fuese una librería

Para la integración hay 2 estrategias:

Configurar Spring para manejar los Actions como Beans

Extender ActionSupport

Page 26: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Repaso

Spring provee soporte para annotations (Java 5+), no solo para funcionalidad core sino para la capa de datos y la vista.

El soporte DAO de Spring se encarga de todas las tareas de bajo nivel

El soporte a la capa de datos es totalmente abstracto y se integra con los frameworks mas importantes del mercado

La capa de web es totalmente agnóstica de la vista. Permite usar tanto Spring MVC como otros frameworks de manera simple y consistente.

Page 27: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Referencias

Spring Home Spring - http://www.springsource.org/

Documentación - http://static.springsource.org/spring/docs/2.5.x/reference/index.html

Page 28: © Softtek 2009. Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

© Softtek 2009. Internal.

Q & A