1 / 28

Introducción a Spring

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.

bayle
Télécharger la présentation

Introducción a Spring

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray juan.irungaray@softtek.com

  2. Agenda • Introducción • Componentes de Spring • Inversión de control / Inyección de dependencias • Configurando Spring: Metadata • Instanciando un Bean • Dependencias • Autowiring • Scopes • Herencia

  3. Introducción • Aplicaciones OO • Arquitecturas variadas • Complejidades variadas • Gran cantidad de herramientas, frameworks y librerías Spring • Facilita la construcción de aplicaciones • Promueve el uso de buenas practicas • Arquitectura probada, madura y estable • Facilidad de extensión y customización

  4. Componentes de Spring

  5. Inversión de control Objetos de negocio (POJOs) Metadata Container Spring (BeanFactory) Objetos listos para usar

  6. Metadata

  7. Instanciando un Bean - Constructor • Constructor • Se especifica la clase del objeto con el atributo “class” • El objeto creado es una instancia de esta clase

  8. Instanciando un Bean - Factory • Factory – 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 instancia • No 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”

  9. Dependencias • Inyección de dependencias • Argumento del constructor • Argumento del método factory • Propiedades a ser insertadas • Valores posibles • Valores directos • Colaboradores • Beans internos • Colecciones (List , Set, Map, Properties) • Null

  10. 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 posibles • No • byName • byType • Constructor • Autodetect Una propiedad o argumento especificado siempre tiene prioridad sobre un valor “autowired”

  11. 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)

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

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

  14. Agenda • @nnotations • Capa de acceso de datos • DAO Support • Utilizando JDBC • Integración con ORMs (Hibernate) • Web MVC • Framework • Controllers • Handler Mappings • View Resolvers • Integracion con Struts

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

  16. 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ías • JdbcDaoSupport • HibernateDaoSupport • JdoDaoSupport • JpaDaoSupport

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

  18. ORM • Facilidad de testing • Excepciones traducidas • Manejo de recursos generales • Manejo de transacciones integrados

  19. HibernateTemplate HibernateDaoSupport Hibernate

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

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

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

  23. Handler Mappings • SimpleUrlHandlerMapping • BeanNameUrlHandlerMapping El uso de handlerMappings se puede obviar utilizando annotations. Aunque se pueden combinar ambos estilos no es recomendado.

  24. View Resolvers • AbstractCachingViewResolver • XmlViewResolver • ResourceBundleViewResolver • UrlBasedViewResolver • InternalResourceViewResolver • VelocityViewResolver / FreeMarkerViewResolver

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

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

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

  28. Q & A

More Related