Saltar al contenido principal
2da. Reunión Java Querétaro Introducción 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 básicos de Spring Características Contenedor de IoC Inversion of Control Ventajas Valores IoC y DI Beneficios del DI Contenedor de Beans de Spring ¿Qué más rodea a Spring? Resumen
Antecedentes JEE es complicado Métodos ágiles Proceso de desarrollo integrado Diseño OO basado en negocio Ingeniería de software
¿Qué es SpringFramework? “ Spring es una tecnología dedicada para permitir construir aplicaciones usando POJO’s…”, 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).
Continuación… Spring a menudo es descrito como un framework “ligero” para construir aplicaciones Java. No esta enfocado a una parte especifica de una aplicación. (i.e. Struts, JSF, Hibernate) Spring es “ligero” porque para usarlo en una aplicación no hay que hacer muchos cambios, en ocasiones ninguno.  Esto al menos para usar el “Core” de Spring. Impacto mínimo. Principio de la filosofía de Spring.
¿Por qué Spring? Porque reduce la complejidad de desarrollo JEE Simplificar sin sacrificar poder. Facilitar mejores practicas, que de otra manera son difíciles seguir. Porque nace de la experiencia práctica de muchos desarrolladores en todo el mundo.
¿Por qué Spring? Desarrollar aplicaciones usando POJO’s Spring ofrece capacidades avanzadas de configuración que permiten escalar a una complejidad del mundo real. Permite aplicar servicios empresariales a los POJO’s, de forma declarativa y no invasiva
 
Componentes de SpringFramework
Características ¿Por qué me cambio la vida al desarrollar software?
AOP Facilita la implementación de soluciones a problemas recurrentes, incluso en contextos diferentes
Acceso a datos Facilita el uso con JDBC, y se integra con: Hibernate, iBatis, JPA
Administracción de transacciones
Integración y simplificación con JEE EJB Session Bean SLSB SFSB JMS JNDI JMX Java Mail
Spring en Web SpringMVC, integración con diferentes tecnologías de vista e incluso con otros frameworks MVC como Struts 1.x,2.x, WebWork, JSF
Calendarización de procesos Quartz
Manejo de excepciones simplificado Evita el tedioso manejo de excepciones Cátedra de manejo de excepiones
Escenarios de Uso
En todas las capas
Usando Frameworks de 3ros.
En remoting
Con EJB’s
Contenedor de IoC
Inversion of Control Técnica que externaliza la creación y manejo de las dependencias de componentes IoC también es conocido como Dependency Injection La implementación de DI de Spring está basada en: JavaBeans Interfaces
Inversion of Control Hablando de DI, Spring actúa más como un contenedor que como un Framework. Nos provee instancias de clases de nuestra aplicación con todas las dependencias que necesitan. Y su principio es simple: JavaBeans
Ventajas de DI Mucho menos código de plomería…:D El contenedor de Spring hace la tarea por nosotros Externaliza las dependencias No es necesario recompilar la app para modificar las dependencias Administración centralizada de las dependencias
Ventajas de DI Mejora la prueba de software(TDD) Facilita intercambiar implementaciones Uso de mocks Ejecución de pruebas eficaz Clases de prueba que apoyan el soporte de diseño Mejor diseño de aplicaciones Interface Driven Design
Valores de Spring El nivel de abstracción manejado es bastante alto y sólido. Lo que permite la adopción del framework como un modelo tecnológico y de negocio. Evita los enfoques ineficientes de JEE Las lista de valores es muy larga, mejor vayamos al aspecto más 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 métodos mutadores(set) Por anotaciones
Beneficios de DI Reducir el acoplamiento Ya no más Patrón de Diseño Factory en todas sus estirpes Abstracción total del ensamblado de la aplicación
Contenedor de Spring En Spring, los objetos que forman la columna vertebral de una aplicación 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 definición de los beans puede ser por: configuración 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é más rodea a Spring? Spring WebFlow Spring WebServices Spring Security SpringSource dm Server Spring Batch Spring LDAP Spring IDE Entre otros…
¿Qué más rodea a Spring? Aplicaciones empresariales Integración con sistemas legados SOA Acceso a múltiples recursos transccionales Control transaccional elemental
¿Qué más 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 código de plomería 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 Querétaro Sigamos haciendo comunidad !!! :D