Introducción a Spring

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

description

Introducción a Spring . Sesión 1: Introducción y teoría . Juan Irungaray [email protected]. Agenda. Introducción Componentes de Spring Inversión de control / Inyección de dependencias Configurando Spring: Metadata Instanciando un Bean Dependencias Autowiring Scopes Herencia. - PowerPoint PPT Presentation

Transcript of Introducción a Spring

Page 1: Introducción a Spring

© Softtek 2009. Internal.

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

Juan [email protected]

Page 2: Introducción a Spring

© 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: Introducción a Spring

© Softtek 2009. Internal.

IntroducciónAplicaciones OO

Arquitecturas variadasComplejidades variadasGran cantidad de herramientas, frameworks y librerías

SpringFacilita la construcción de aplicacionesPromueve el uso de buenas practicas

Arquitectura probada, madura y estableFacilidad de extensión y customización

Page 4: Introducción a Spring

© Softtek 2009. Internal.

Componentes de Spring

Page 5: Introducción a Spring

© Softtek 2009. Internal.

Inversión de control

Metadata

Container Spring (BeanFactory)

Objetos listos para usar

Objetos de negocio (POJOs)

Page 6: Introducción a Spring

© Softtek 2009. Internal.

Metadata

Page 7: Introducción a Spring

© 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: Introducción a Spring

© Softtek 2009. Internal.

Instanciando un Bean - FactoryFactory – Método de clase

Se 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: Introducción a Spring

© Softtek 2009. Internal.

DependenciasInyección de dependencias

Argumento del constructorArgumento del método factoryPropiedades a ser insertadas

Valores posiblesValores directosColaboradoresBeans internosColecciones (List , Set, Map, Properties)Null

Page 10: Introducción a Spring

© Softtek 2009. Internal.

AutowiringSe 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 posiblesNobyNamebyTypeConstructorAutodetect

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

Page 11: Introducción a Spring

© Softtek 2009. Internal.

Scopes Configuran como maneja Spring las instancias de una clase

Existen 5 valores out of the box:SingletonPrototypeRequest (Solo para aplicaciones web)Session (Solo para aplicaciones web)Global Session (Solo para aplicaciones web-portlet)

Page 12: Introducción a Spring

© Softtek 2009. Internal.

HerenciaPermite 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: Introducción a Spring

© Softtek 2009. Internal.

RepasoSpring 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: Introducción a Spring

© Softtek 2009. Internal.

Agenda@nnotationsCapa de acceso de datos

DAO SupportUtilizando JDBCIntegración con ORMs (Hibernate)

Web MVC FrameworkControllersHandler MappingsView ResolversIntegracion con Struts

Page 15: Introducción a Spring

© Softtek 2009. Internal.

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

Page 16: Introducción a Spring

© Softtek 2009. Internal.

DAO SupportFacilitar 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íasJdbcDaoSupportHibernateDaoSupportJdoDaoSupportJpaDaoSupport

Page 17: Introducción a Spring

© Softtek 2009. Internal.

DAO - JDBCTareas necesarias en una conexión JDBC:

1. Definir parámetro de conexión2. Abrir la conexión 3. Especificar un Statement 4. Preparar y ejecutar dicho Statement5. Iterar sobre los resultados obtenidos6. Hacer la tarea necesaria para cada iteracion del resultado 7. Manejar excepciones8. Manejar transacciones9. Cerrar conexión

Page 18: Introducción a Spring

© Softtek 2009. Internal.

ORMFacilidad de testingExcepciones traducidasManejo de recursos generalesManejo de transacciones integrados

Page 19: Introducción a Spring

© Softtek 2009. Internal.

Hibernate

HibernateTemplateHibernateDaoSupport

Page 20: Introducción a Spring

© 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: Introducción a Spring

© Softtek 2009. Internal.

Web MVC frameworkSeparació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: Introducción a Spring

© Softtek 2009. Internal.

ControllersInterpretan 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: Introducción a Spring

© Softtek 2009. Internal.

Handler MappingsSimpleUrlHandlerMappingBeanNameUrlHandlerMapping

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

Page 24: Introducción a Spring

© Softtek 2009. Internal.

View ResolversAbstractCachingViewResolver

XmlViewResolver

ResourceBundleViewResolver

UrlBasedViewResolver

InternalResourceViewResolver

VelocityViewResolver / FreeMarkerViewResolver

Page 25: Introducción a Spring

© Softtek 2009. Internal.

Integracion con StrutsSe 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: Introducción a Spring

© Softtek 2009. Internal.

RepasoSpring 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: Introducción a Spring

© Softtek 2009. Internal.

ReferenciasSpring

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

Page 28: Introducción a Spring

© Softtek 2009. Internal.

Q & A