Introducción a Spring
description
Transcript of Introducción a Spring
© Softtek 2009. Internal.
Introducción a Spring Sesión 1: Introducción y teoría
Juan [email protected]
© 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