Introducción a Spring

Post on 23-Feb-2016

90 views 0 download

Tags:

description

Introducción a Spring . Sesión 1: Introducción y teoría . Juan Irungaray juan.irungaray@softtek.com. 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

© Softtek 2009. Internal.

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

Juan Irungarayjuan.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

© 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

© Softtek 2009. Internal.

Componentes de Spring

© Softtek 2009. Internal.

Inversión de control

Metadata

Container Spring (BeanFactory)

Objetos listos para usar

Objetos de negocio (POJOs)

© Softtek 2009. Internal.

Metadata

© 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

© 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”

© 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

© 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”

© 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)

© 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

© 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.

© Softtek 2009. Internal.

Agenda@nnotationsCapa de acceso de datos

DAO SupportUtilizando JDBCIntegración con ORMs (Hibernate)

Web MVC FrameworkControllersHandler MappingsView ResolversIntegracion con Struts

© Softtek 2009. Internal.

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

© 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

© 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

© Softtek 2009. Internal.

ORMFacilidad de testingExcepciones traducidasManejo de recursos generalesManejo de transacciones integrados

© Softtek 2009. Internal.

Hibernate

HibernateTemplateHibernateDaoSupport

© Softtek 2009. Internal.

Web MVC

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

© 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

© 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

© Softtek 2009. Internal.

Handler MappingsSimpleUrlHandlerMappingBeanNameUrlHandlerMapping

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

© Softtek 2009. Internal.

View ResolversAbstractCachingViewResolver

XmlViewResolver

ResourceBundleViewResolver

UrlBasedViewResolver

InternalResourceViewResolver

VelocityViewResolver / FreeMarkerViewResolver

© 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

© 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.

© Softtek 2009. Internal.

ReferenciasSpring

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

© Softtek 2009. Internal.

Q & A