Introducci n a spring
This presentation is the property of its rightful owner.
Sponsored Links
1 / 28

Introducción a Spring PowerPoint PPT Presentation


  • 159 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Introducci n a spring

Introducción a Spring

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

Juan Irungaray

[email protected]


Agenda

Agenda

  • Introducción

  • Componentes de Spring

  • Inversión de control / Inyección de dependencias

  • Configurando Spring: Metadata

  • Instanciando un Bean

  • Dependencias

  • Autowiring

  • Scopes

  • Herencia


Introducci n

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


Componentes de spring

Componentes de Spring


Inversi n de control

Inversión de control

Objetos de negocio (POJOs)

Metadata

Container Spring (BeanFactory)

Objetos listos para usar


Metadata

Metadata


Instanciando un bean constructor

Instanciando un Bean - Constructor

  • Constructor

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

    • El objeto creado es una instancia de esta clase


Instanciando un bean factory

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”


Dependencias

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


Autowiring

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”


Scopes

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)


Herencia

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


Repaso

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.


Agenda1

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


@nnotations

@Component, @Service , @Repository & @Controller

@PostConstruct & @PreDestroy

@Autowired

@Required

@Resource

@nnotations


Dao support

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


Dao jdbc

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


Introducci n a spring

ORM

  • Facilidad de testing

  • Excepciones traducidas

  • Manejo de recursos generales

  • Manejo de transacciones integrados


Hibernate

HibernateTemplate

HibernateDaoSupport

Hibernate


Web mvc

Web MVC

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


Web mvc framework

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


Controllers

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


Handler mappings

Handler Mappings

  • SimpleUrlHandlerMapping

  • BeanNameUrlHandlerMapping

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


View resolvers

View Resolvers

  • AbstractCachingViewResolver

  • XmlViewResolver

  • ResourceBundleViewResolver

  • UrlBasedViewResolver

  • InternalResourceViewResolver

  • VelocityViewResolver / FreeMarkerViewResolver


Integracion con struts

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


Repaso1

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.


Referencias

Referencias

  • Spring

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

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


Introducci n a spring

Q & A


  • Login