Agenda ¿Que es Spring Framework?
Conceptos de Spring Framework.
Beneficios de utilizar Spring Framework.
Módulos de Spring Framework
¿Qué es un Bean y un Bean Definition?
¿Qué es un Bean Factory y un Application Context?
Diferencias entre Bean Factory y Application Context.
¿Qué son los scopes y para que se utilizan?
Conclusiones. 2015
Qué es Spring Framework?
Es un framework de código abierto que tiene por objetivo facilitar el desarrollo de aplicaciones Java, proporcionando un modelo de configuración completa para aplicaciones empresariales. “ ”
3 2015 - ODRA Soluciones Informáticas
Conceptos de Spring Framework
Inyección de Dependencias (ID)
Todas las aplicaciones tienen objetos que colaboran entre si para cumplir una funcionalidad determinada. En aplicaciones grandes estos
objetos deben tender a ser lo mas independientes posibles, permitiendo tener un bajo acoplamiento, y una alta cohesión.
Mediante la inyección de dependencias (con sus diferentes modos), Spring permite mantener esas clases independientes, y al mismo tiempo que cumplan la funcionalidad deseada. El mecanismo que
inyecta esas dependencias se llama autowiring.
” 4 2015 - ODRA Soluciones Informáticas
Conceptos de Spring Framework
Programación Orientada a Aspectos (AOP)
Mediante AOP, Spring agrega funcionalidades transversales a toda la aplicación, ya sea auditoria, logueo,
administración de transacciones, seguridad mediante roles, entre otras. A partir de esto, permite que el código
sea mas amigable, y legible. “ 5 2015 - ODRA Soluciones Informáticas
Conceptos de Spring Framework
Definición de Servicios Portables.
Spring permite la integración de distintos servicios, mediante una mínima configuración, sin necesidad a veces
de conocer sus dependencias. Por ejemplo, permite utilizar DB sin necesidad de conocer el motor de base de
datos, LDAP, comunicación con servicios web, entre varios. “ 6 2015 - ODRA Soluciones Informáticas
Beneficios de Spring Framework - I
Permitir desarrollar aplicaciones empresariales mediante la creación de POJOs (en inglés, Plain Old Java Objects, o en español Objeto Java Plano y a la antigua).
A pesar de tener muchísimas funcionalidades, se puede utilizar simplemente lo que se necesita para una aplicación, ya que Spring esta dividido en varios módulos.
Spring simplemente integra distintos framework, ya sean de mapeo ORM, logueo, Quartz, de visualización, manejo de fechas y horas, entre otros.
7 2015 - ODRA Soluciones Informáticas
Beneficios de Spring Framework - II
Los tests (unitarios y de integración) de las aplicaciones realizadas con Spring son realmente muy fáciles. Esto es debido a que Spring maneja POJOs, y permite la inyección de dependencias (ID).
Spring provee un potente modulo para desarrollar aplicaciones web, mayormente con anotaciones, y permitiendo elegir el framework para la visualización de forma fácilmente configurable.
Además Spring posee un modulo para traducir errores (exceptions) de distintas tecnologías, ya sean ORM, JDBC, etc.
8 2015 - ODRA Soluciones Informáticas
Beneficios de Spring Framework - III
El contenedor IoC de Spring es muy liviano comparado con contenedores EJB. Esto permite el desarrollo de aplicaciones en computadoras con memoria limitada.
Spring ofrece un potente y consistente administrador de transacciones para la aplicación, la cual es fácilmente configurable mediante anotaciones.
9 2015 - ODRA Soluciones Informáticas
Módulos de Spring Framework - I
Core Container
- Beans y Core: Ambos módulos proveen las partes fundamentales de Spring. Incluye las funcionalidades de Inyección de dependencias (DI), y Inversion of Control (IoC). - Context: Basado en los dos módulos anteriores, Context agrega el soporte a internacionalización, propagación de eventos, carga de recursos, y la creación de los contextos. - Context-support: Agrega el soporte de integración a librerías de terceros para cache, email, schedulling, y motores de templates. - SpEL: Ofrece un potente motor de expresiones para manipular, y consultar el grafo de objetos durante la ejecución.
10 2015 - ODRA Soluciones Informáticas
Módulos de Spring Framework - II
Data Access/Integración
- JDBC: Ofrece una abstracción para soporte JDBC, sin necesidad de codificar y parsear específicos errores JDBC. - ORM: permite la integración con distintas APIs de mapeo objetos-relacional. - OXM: similar a ORM pero para mapeo objetos-XML. - JMS: ofrece soporte a funcionalidades de productos/ consumidos de mensajes. - Transactions: Soporte a de transacciones de modo programática, y declarativa.
11 2015 - ODRA Soluciones Informáticas
Módulos de Spring Framework - III
Data Web
- WebSockets: Ofrece soporte a implementaciones web socket, sockjs, incluido STOMP. - Web-Servlet: Permite el soporte al modelo Model-View-Controller, e implementación de servicios rest. Ofrece una clara separación entre el dominio del negocio, y la parte web y sus controllers, formularios, validaciones, y demás. - Web: Provee el soporte para integración de funcionalidades como subir archivos, inicialización del contenedor utilizando Serlvet Listener, y el contexto de la aplicación web. - Portlet: Este modulo provee una implementación del modulo MVC para un ambiente portlet.
12 2015 - ODRA Soluciones Informáticas
Módulos de Spring Framework - II
- AOP: Ofrece una implementación de AOP Alliance-Compliant la cual permite definir interceptores y pointcut. - Aspect: Agrega soporte con AspectJ. - Instrumentation: Provee soporte de instrumentación y classloader para algunos application servers. - Messasing: Modulo de Spring 4 da soporte a aplicaciones basadas en mensajes. Al igual que el modulo Spring MVC, este modulo ofrece anotaciones para el soporte de mensajes. - Test: modulo que ofrece testing unitario y de integración, mediante Junit, y TestNG. Permite cacheo de los contextos , y provee objetos mocks para testear la aplicación de forma aislada.
13 2015 - ODRA Soluciones Informáticas
Qué es un Bean y un Bean Definition? - I
Bean Aquel objeto que forma parte de la columna vertebral de la
aplicación y es administrado por el contenedor IoC de Spring, recibe el nombre de Bean.
Bean Definition Un Bean Definition contiene la información metadata del Bean
que es necesaria para que Spring administre su ciclo de vida, desde su creación hasta su destrucción.
14 2015 - ODRA Soluciones Informáticas
Que es un Bean y un Bean Definition? - II
Bean Definition
La información metadata que Spring necesita, se define a partir de archivos XML, y/o basado en anotaciones, y/o basado en código Java y se puede traducir en los siguientes puntos:
- Como crear el Bean? - Detalles del ciclo de vida del Bean. - Dependencias del Bean.
15 2015 - ODRA Soluciones Informáticas
Que es un Bean Factory y un Application Context?
Spring provee los siguientes dos tipos de contenedores:
• BeanFactory: es el contenedor mas simple que provee el soporte básico a DI, definido por la interface org.springframework.beans.factory.BeanFactory. Sus interfaces relacionadas como BeanFactoryAware, InitializingBean, DisposableBean por propósitos de compatibilidad.
• ApplicationContext: este contenedor, basándose en el anterior, agrega funcionalidades como resolución de mensajes, publicación de eventos, entre otros. Esta definido por la interface org.springframework.context.ApplicationContext.
16 2015 - ODRA Soluciones Informáticas
Que son los Scopes y Para que se utilizan?
Spring permite especificar en cada uno de los beans que se definen, el scope (o su alcance) del mismo. Los scopes disponibles son:
Singleton: el bean definido con este scope va existir
solamente una vez por cada contenedor IoC. Es el que utiliza por default Spring.
Prototype: el bean definido con este scope, spring creara
una instancia nueva por cada uno que lo solicite (tenga como dependencia).
17 2015 - ODRA Soluciones Informáticas
Que son los Scopes y Para que se utilizan?
Request: Spring creara un bean con este scope por cada request. Solo es valido en un ambiente web.
Session: se creara un bean por cada HttpSession. Solo es
válido en un ambiente web. Global-session: se creara un bean por cada global http
session. Solo es valido en un ambiente web.
18 2015 - ODRA Soluciones Informáticas
Conclusiones
En esta oportunidad pudimos conocer : -Los beneficios que ofrece Spring Framework para aplicaciones empresariales. - Los conceptos básicos en los cuales se basa (y por los que nace) Spring Framework. - Los distintos módulos de los que esta compuesto, y algunos detalles tales como los scopes, definición de bean, y bean.
Muchas Gracias!
Guillermo Salazar
Ing. en Sistemas de Información
ar.linkedin.com/in/guillesalazar
@guillesalazar
ODRA Soluciones Informáticas
www.odra.com.ar
blog.odra.com.ar
@odra_ti
Información de Contacto: