Post on 15-Jan-2017
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