Introducción a Spring framework

20
Introducción a Spring Framework ODRA Soluciones Informáticas 2015

Transcript of Introducción a Spring framework

Introducción a Spring Framework ODRA Soluciones Informáticas

2015

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

[email protected]

ar.linkedin.com/in/guillesalazar

@guillesalazar

ODRA Soluciones Informáticas

www.odra.com.ar

blog.odra.com.ar

[email protected]

@odra_ti

Información de Contacto: