Spring

download Spring

If you can't read please download the document

Transcript of Spring

3ra. Reunin de SpringHispano

2da. Reunin Java Quertaro

Introduccin a SpringFramework

Acerca de mi...(neodevelop Jos Juan Reyes Z.)

La referencia total: SpringHispano.org y grails.org.mx

Agenda

Antecedentes

Qu es Spring?, Por qu Spring?

Componentes bsicos de Spring

Caractersticas

Contenedor de IoC

Inversion of Control

Ventajas

Valores

IoC y DI

Beneficios del DI

Contenedor de Beans de Spring

Qu ms rodea a Spring?

Resumen

Antecedentes

JEE es complicado

Mtodos giles

Proceso de desarrollo integrado

Diseo OO basado en negocio

Ingeniera de software

Qu es SpringFramework?

Spring es una tecnologa dedicada para permitir construir aplicaciones usando POJOs, Rod Johnson The Server Side

SpringFramework

Spring es un poderoso framework de aplicaciones que resuelve muchos problemas comunes en el desarrollo de aplicaciones Java (SDK y EE).

Continuacin

Spring a menudo es descrito como un framework ligero para construir aplicaciones Java.

No esta enfocado a una parte especifica de una aplicacin. (i.e. Struts, JSF, Hibernate) Spring es ligero porque para usarlo en una aplicacin no hay que hacer muchos cambios, en ocasiones ninguno.

Esto al menos para usar el Core de Spring.

Impacto mnimo. Principio de la filosofa de Spring.

Por qu Spring?

Porque reduce la complejidad de desarrollo JEE

Simplificar sin sacrificar poder.

Facilitar mejores practicas, que de otra manera son difciles seguir.

Porque nace de la experiencia prctica de muchos desarrolladores en todo el mundo.

Por qu Spring?

Desarrollar aplicaciones usando POJOs

Spring ofrece capacidades avanzadas de configuracin que permiten escalar a una complejidad del mundo real.

Permite aplicar servicios empresariales a los POJOs, de forma declarativa y no invasiva

Componentes de SpringFramework

Caractersticas

Por qu me cambio la vida al desarrollar software?

AOP

Facilita la implementacin de soluciones a problemas recurrentes, incluso en contextos diferentes

Acceso a datos

Facilita el uso con JDBC, y se integra con: Hibernate, iBatis, JPA

Administraccin de transacciones

Integracin y simplificacin con JEE

EJB

Session Bean

SLSB

SFSB

JMS

JNDI

JMX

Java Mail

Spring en Web

SpringMVC, integracin con diferentes tecnologas de vista e incluso con otros frameworks MVC como Struts 1.x,2.x, WebWork, JSF

Calendarizacin de procesos

Quartz

Manejo de excepciones simplificado

Evita el tedioso manejo de excepcionesCtedra de manejo de excepiones

Escenarios de Uso

En todas las capas

Usando Frameworks de 3ros.

En remoting

Con EJBs

Contenedor de IoC

Inversion of Control

Tcnica que externaliza la creacin y manejo de las dependencias de componentes

IoC tambin es conocido como Dependency Injection

La implementacin de DI de Spring est basada en:

JavaBeans

Interfaces

Inversion of Control

Hablando de DI, Spring acta ms como un contenedor que como un Framework.

Nos provee instancias de clases de nuestra aplicacin con todas las dependencias que necesitan.

Y su principio es simple: JavaBeans

Ventajas de DI

Mucho menos cdigo de plomera:D

El contenedor de Spring hace la tarea por nosotros

Externaliza las dependencias

No es necesario recompilar la app para modificar las dependencias

Administracin centralizada de las dependencias

Ventajas de DI

Mejora la prueba de software(TDD)

Facilita intercambiar implementaciones

Uso de mocks

Ejecucin de pruebas eficaz

Clases de prueba que apoyan el soporte de diseo

Mejor diseo de aplicaciones

Interface Driven Design

Valores de Spring

El nivel de abstraccin manejado es bastante alto y slido.

Lo que permite la adopcin del framework como un modelo tecnolgico y de negocio.

Evita los enfoques ineficientes de JEE

Las lista de valores es muy larga, mejor vayamos al aspecto ms pragmatico

IoC y DI

DI es un mecanismo para proveer dependencias de componentes

Maneja esas dependencias en su ciclo de vida

Un componente que requiere esa dependencia es llamado un objeto dependiente

Ejemplos de DI

Por constructor

Por mtodos mutadores(set)

Por anotaciones

Beneficios de DI

Reducir el acoplamiento

Ya no ms Patrn de Diseo Factory en todas sus estirpes

Abstraccin total del ensamblado de la aplicacin

Contenedor de Spring

En Spring, los objetos que forman la columna vertebral de una aplicacin son manejados por el contenedor de IoC

En Spring, a esos objetos se les conoce como beans

Un bean es cualquier objeto simple, que es instanciado y administrado por el IoC

La definicin de los beans puede ser por: configuracin XML y por anotaciones

El contenedor es representado por: org.springframework.beans.factory.BeanFactory

Contenedor de Beans de Spring

Existen varias implementacions del BeanFactory, por ejemplo:

org.springframework.beans.factory.XmlBeanFactory

Esta permite expresar a los objetos de una app y sus relaciones basados en archivos XML

Qu ms rodea a Spring?

Spring WebFlow

Spring WebServices

Spring Security

SpringSource dm Server

Spring Batch

Spring LDAP

Spring IDE

Entre otros

Qu ms rodea a Spring?

Aplicaciones empresariales

Integracin con sistemas legados

SOA

Acceso a mltiples recursos transccionales

Control transaccional elemental

Qu ms rodea a Spring?

Servidores de aplicaciones

Es independiente del servidor de Aplicaciones

Certificado para Weblogic, Websphere

Uso comprobado en JBoss, Glassfish

Resumen

Spring es un framework de infraestructura para crear excelentes arquitecturas, incluso otros frameworks

Spring te ayuda a reducir y en algunos casos eliminar el cdigo de plomera

Spring no sustituye a JEE, ni intenta hacerlo

Spring es OpenSource, y por eso es exitoso

Spring usa licenciamiento Apache 2.0

Mas referencias

SpringHispano.org

SpringFramework.org

Twitter de SpringHispano

Recursos en delicious.com

neodevelop

Gracias Java Quertaro

Sigamos haciendo comunidad !!! :D