ebook spring

Click here to load reader

Post on 11-Oct-2015

61 views

Category:

Documents

4 download

Embed Size (px)

TRANSCRIPT

  • Experiencia y Conocimiento para tu Vida

    Este curso est dirigido a gente interesada en el desarrollo de aplicacionesJEE con Spring. Este framework permite agilizar y simplificar en gran medidael desarrollo de aplicaciones JEE.

    Estudiaremos desde los fundamentos hasta conceptos ms avanzados delframework Java ms utilizado en los ltimos aos para aplicacionesempresariales.

    Al final de este curso crearemos un proyecto, el cual utiliza las mejoresprcticas de desarrollo en 3 capas, incluyendo patrones de diseo como sonMVC, DAO, Factory, DTO, entre otros. Este proyecto puede usarse como labase para el desarrollo de proyectos empresariales propios utilizando elframework de Spring como orquestador de la capa de servicio.

    Por medio de ejemplos prcticos revisaremos las caractersticas de esteframework, a su vez utilizaremos herramientas de desarrollo que nospermitirn crear ms rpidamente nuestras aplicaciones Java con Spring, ascomo la integracin con otros frameworks.

    1Todos los Derechos Reservados Global Mentoring 2011

    Curso de Spring Framework

  • Experiencia y Conocimiento para tu Vida

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 2

  • Experiencia y Conocimiento para tu Vida

    Spring es el framework Java utilizado por excelencia para el desarrollode aplicaciones empresariales. Es uno de los frameworks ms utilizadosal da de hoy y no es casualidad. El objetivo de Spring es simplificar eldesarrollo de aplicaciones empresariales Java.

    A grandes rasgos, un framework es un conjunto de clases que nospermiten resolver un problema en especfico. En el caso particular deSpring, nos permite resolver muchos de los problemas que se presentanal desarrollar aplicaciones con tecnologa JEE (Java Enterprise Edition)

    Una de las mayores ventajas de Spring, es la forma modular en el quefue creado, permitiendo habilitar/deshabilitar las caractersticas a utilizarsegn se requiera.

    La pgina oficial de Spring es www.springsource.org donde se puedenencontrar todos los proyectos relacionados con dicha tecnologa.

    Spring es utilizado en proyectos muy diversos, como puede ser enInstituciones Bancarias, Aseguradoras, Instituciones Educativas y deGobierno, entre muchos otros tipos de proyectos y empresas.

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 3

  • Experiencia y Conocimiento para tu Vida

    Spring permite desarrollar aplicaciones flexibles, altamente cohesivas y con unbajo acoplamiento.

    Spring permiti simplificar el desarrollo JEE al utilizar clases Java Simples(POJO Plain Old Java Object) para la configuracin de servicios.

    Debido a que muchos proyectos muestran las mismas tareas a realizar una yotra vez, tales como Localizacin de Servicios, Manejo de Transacciones,Manejo de Excepciones, Parametrizacin de la aplicacin, entre muchos ms.

    Spring permite resolver muchos de estos problemas de manera muy simple.Para lograr lo anterior el framework se base en dos conceptos fundamental:

    DI (Dependency Inyection): Este patrn de diseo permite suministrarobjetos a una clase (POJO) que tiene dependencias, en lugar de ser ellamisma sea quien los proporcione.

    AOP (Aspect Oriented Programming): AOP es un paradigma deprogramacin que permite modularizar las aplicaciones y mejorar laseparacin de responsabilidades entre mdulos y/o clases.

    Las caractersticas anteriores son la base para la creacin de contenedoresligeros (lightweight containers). Spring es uno de los contenedores ligeros mscompletos y populares al da de hoy.

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 4

  • Experiencia y Conocimiento para tu Vida

    Spring se compone de distintos mdulos, permitiendo seleccionar solo algunos deellos o todos, dependiendo de la naturaleza de la aplicacin. En la figura podemosobservar algunos de los mdulos principales del Framework de Spring. Acontinuacin listaremos varios de ellos:

    1. Spring Core: Este mdulo provee la funcionalidad bsica de la fbrica de Spring.El componente principal es BeanFactory, el cual aplica el concepto de Inversionof Control (IoC) o tambin conocido como Dependency Injection (DI).

    2. Spring Context: Aqu es donde se realiza la configuracin del framework. Incluyela configuracin de servicios empresariales tales como JNDI, EJB,Internacionalizacin, validacin, entre varios ms.

    3. Spring AOP: Permite aplicar los conceptos de Programacin Orientada aAspectos (AOP), adems incluye clases de soporte para el manejo transaccional,la seguridad, entre varias clases ms, permitiendo desacoplar estascaractersticas de nuestra aplicacin.

    4. Spring DAO: Permite aplicar conceptos de la capa de datos Data Access Object(DAO) a travs de POJOs (Plain Old Java Object), abstrayendo la complejidad,permitiendo crear un cdigo JDBC ms limpio y simple.

    5. Spring ORM: Permite integrarse con tecnologas tales como JPA, Hibernate,entre otras.

    6. Spring Web: Permite el desarrollo y la integracin con tecnologas como Struts,JSF, Tapestry, entre otros.

    7. Spring MVC: Este mdulo implementa el patrn MVC para ser utilizado en lacapa de presentacin.

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 5

  • Experiencia y Conocimiento para tu Vida

    Una aplicacin empresarial en Java se compone de distintas capas, cada capa tieneuna funcin muy especfica. Dividir una aplicacin en capas tiene varias ventajas,como son separacin de responsabilidades, un mejor mantenimiento a la aplicacin,especializacin de los programadores en cada capa, entre muchas ms.

    Spring es un framework que resuelve varios problemas de distintas capas, desde lacapa de presentacin, la capa de negocio y la capa de datos. Aunque lo ms comnes que se combine con otras tecnologas y Spring quede como el orquestador de lacapa de Servicio.

    A continuacin mencionaremos cada una de las capas de una aplicacin multicapas.

    Capa Web: La capa del Cliente es donde el cliente interacta por medio de unnavegador Web, un cliente mvil, una aplicacin de escritorio, entre otros.

    Capa Web: la capa web que puede residir en un servidor web, las tecnologasmas bsicas que podemos encontrar en este servidor web son los JSPs y losServlets.

    Capa de Negocio: en esta capa podemos encontrar tecnologa como son losEnterprise Java Beans (EJBs) o frameworks como Spring.

    Capa de Datos: aqu vamos a encontrar tecnologas como JDBC, Hibernate, entreotras. Este cdigo nos va a permitir comunicarnos con nuestra base de datos paraleer y almacenar informacin en ella.

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 6

  • Experiencia y Conocimiento para tu Vida

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 7

  • Experiencia y Conocimiento para tu Vida

    La cohesin y el acoplamiento juegan un rol central en el diseo de software.Al disear nuestros mdulos se requerirn cambios posteriores, por lo que sudiseo puede impactar de manera directa en el tiempo y costo asociado pararealizar dichos cambios.

    La cohesin es la medida en la que un componente se dedica a realizarsolamente la tarea para la cual fue creado, delegando las tareascomplementarias a otros componentes.

    El acoplamiento mide el grado de dependencia entre dos o ms elementos.Estos elementos pueden ser mdulos, clases o cualquier componente desoftware.

    Hay que tomar en cuenta que una alta cohesin puede provocar un altoacoplamiento, debido a que un componente que es pequeo (alta cohesin)necesita de ms elementos para completar una tarea, por lo que seincrementa el nmero de relaciones entre los componentes (altoacoplamiento), por ello es necesario introducir el concepto de balance, el cualpermite tener un equilibrio entre los conceptos de cohesin y acoplamiento.

    Spring por default promueve el desarrollo de sistemas con un bajoacoplamiento y una alta cohesin, aplicando los conceptos de DI(Dependency Injection) y AOP (Aspect Oriented Programming).

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 8

  • Experiencia y Conocimiento para tu Vida

    Una patrn de diseo es una gua y que a su vez nos permite resolver unproblema que se presenta de manera repetitiva. Cuando hablamos de lascapas de una arquitectura JEE, cada capa puede tener varios patrones dediseo como podemos observar en la figura.

    En la capa de presentacin podemos observar el patrn MVC (Modelo VistaControlador), y su objetivo es dividir las responsabilidades en estos 3 rubros.El patrn DTO (Data Transfer Object) representa un objeto del dominio delproblema. Este patrn aparece en las 3 capas debido a que se utiliza paratransferir una entidad o una lista de entidades de cierto tipo entre las distintascapas de la aplicacin.

    En la capa de Servicio o Negocio, tenemos el patrn Business Delegate elcual se encarga de los detalles en la llamada a algn mtodo de servicio. A suvez tenemos el patrn Service Locator, el cual es utilizado por el patrnBusiness Delegate para localizar los servicios cuando se utiliza el directorioJava JNDI.

    En la capa de datos tenemos el patrn DAO, el cual nos ayuda a extraer yalmacenar informacin en la base de datos, utilizando los objetos DTO y/o deentidad.

    Existe un catlogo extenso de patrones de diseo para Java, el cual se puede consultar en: http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

    Curso de Spring Framework

    Todos los Derechos Reservados Global Mentoring 2011 9

  • Experiencia y Conocimiento para tu Vida

    La programacin hacia interfaces significa que podemos cambiar laimplementacin de alguna clase de manera programtica o declarativa.

    En la figura m