+ All Categories
Home > Documents > Presentacion Spring ROO-Paulo Clavijo-20111110

Presentacion Spring ROO-Paulo Clavijo-20111110

Date post: 24-Nov-2015
Category:
Upload: rodrigo-araya
View: 7 times
Download: 1 times
Share this document with a friend
Popular Tags:
29
1 Your Name Your Name Line 1 of Your Affiliation Line 1 of Your Affiliation Line 2 of Your Affiliation Line 2 of Your Affiliation Desarrollo Java EE altamente productivo Desarrollo Java EE altamente productivo ISC – Noviembre 2011 ISC – Noviembre 2011 Paulo Clavijo Esteban Paulo Clavijo Esteban [email protected] [email protected] Introducción a Spring Roo Introducción a Spring Roo
Transcript
  • 1Your NameYour Name

    Line 1 of Your AffiliationLine 1 of Your AffiliationLine 2 of Your AffiliationLine 2 of Your Affiliation

    Desarrollo Java EE altamente productivoDesarrollo Java EE altamente productivo

    ISC Noviembre 2011ISC Noviembre 2011Paulo Clavijo EstebanPaulo Clavijo [email protected][email protected]

    Introduccin a Spring RooIntroduccin a Spring Roo

  • 2Agenda

    Introduccin a Spring RooObjetivo PrincipalQu es Spring Roo?Spring Roo CLIGenerando una aplicacin de ejemplo.Tecnologas y ArquitecturaNcleo y Add-ons.

    Demo Aplicacin Reserva Libros

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 3Objetivo Principal

    El objetivo principal de Spring ROO es mejorar la productividad

    de los desarrollos Java sin comprometer la integridad y

    flexibilidad del sistema

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 4Qu es Spring Roo?

    Ben Alex:

    Roo es un pequeo genio que observa desde un segundo plano y gestiona todo aquello de lo que no

    me quiero preocupar

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 5Qu es Spring Roo?

    Spring Roo es una herramienta de desarrollo rpido de aplicaciones o RAD, que permite el desarrollo de aplicaciones Java EE de forma muy productiva y cmoda para el desarrollador.

    Las aplicaciones resultantes utilizan tecnologas Java conocidas como Spring Framework, Java Persistence API, Java Server Pages, Apache Maven, AspectJ, etc.

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 6Caractersticas principales (1/3)

    Generacin de cdigo (activa y pasiva) para aplicaciones Java con Spring.Elimina el trabajo tedioso centrando el desarrollo en la lgica de negocio.Paradigma CoC (Convencin sobre configuracin).Enfoque DDD (Domain-Driven Development).

    Dirigido por el modelo de entidades.Lgica en las entidades (Real Object Oriented), elimina capas redundantes.Rich Domain Model (RDM) en oposicin al anti-patrn Anemic Domain Model (ADM).

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 7Arquitectura DDD

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 8Caractersticas principales (2/3)

    Crea un proyecto en segundos.Realimentacin: aade valor durante todo el ciclo de vida.Las aplicaciones siguen las mejores prcticas de diseo.Permite auto-generar test unitarios y de integracin.No incorpora elementos adicionales al entorno de ejecucin, por lo que no penaliza la velocidad la aplicacin.No requiere ningn IDE.Recibe instrucciones a travs de una consola interactiva con auto-completado y ayuda en lnea.

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 9Caractersticas principales (3/3)

    Extensible usando bundles OSGi.Aprovecha el conocimiento: no necesita ms conocimiento que el necesario para el desarrollo de aplicaciones J2EE.Podemos eliminar Roo de un proyecto en minutos.

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 10

    Spring Roo CLI

    Spring Roo es una herramienta de Linea de Comandos (CLI).De fcil uso, proporciona auto-completado TAB de comandos y argumentos, y ayuda en linea mediante el comando help y hint.Se puede integrar con IDEs como STS o Eclipse

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 11

    Generando una aplicacin en minutos

    Demo 1 Aplicacin Inventario

    roo>projecttopLevelPackagecom.curso.inventario

    roo>jpasetupproviderHIBERNATEdatabaseHYPERSONIC_IN_MEMORY

    roo>entityclass~.domain.ProductotestAutomatically

    roo>fieldnumberfieldNameidProductotypeintnotNull

    roo>fieldstringfieldNamenombrenotNull

    roo>fieldstringfieldNamedescripcion

    roo>fieldnumberfieldNamepreciotypedouble

    roo>webmvcsetup

    roo>webmvcallpackage~.web

    roo>performtests

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 12

    Generando una aplicacin

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 13

    Utilizando Eclipse IDE

    Si se utiliza Eclipse IDE y no SpringSource Tool Suite (STS).

    Instalar plugin m2eclipse (Indigo lo trae de serie).Instalar plugin AJDT (AspectJ Development Tools)Activar JDT Weaving:

    Window > Preferences > JDT WeavingConfigurar refresco automtico:

    Preferences > General > Workspace > Refresh using native hooks or polling

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 14

    Cdigo Java generado

    Roo genera cdigo que podemos dividir en dos categoras:Cdigo gestionado por Spring Roo.

    Ficheros AspectJ ITD (extensin .aj)Cdigo gestionado por el programador.

    Fuentes JavaEn tiempo de compilacin, el cdigo en los ficheros .aj, es tejido (weaved) en el cdigo de los fuentes Java.

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 15

    Infraestructura Roo

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 16

    Demo 2 Aplicacin Reserva de Libros (1/9)

    RequerimientosLa aplicacin debe permitir administrar las entidades Libro, TipoLibro, Autor y Reserva. As como la bsqueda de Libro por ISBN o titulo.Seguridad

    Las pginas de gestin de Libro, TipoLibro y Autor son accesible a usuarios del rol ROLE_ADMINLa pgina de gestin de Reserva es accesible para usuarios del rol ROLE_USER

    PruebasTest de integracin de las entidadesTest automticos de la capa Web con Selenium

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 17

    Demo 2 Aplicacin Reserva de Libros (2/9)

    Modelo de Dominio

    Relacin One-to-one entre las entidades Libro y TipoLibroRelacin Many-to-one entre las entidades Reserva y LibroRelacin Many-to-Many entre las entidades Libro y Autor

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 18

    Demo 2 Aplicacin Reserva de Libros (3/9)

    roo>projecttopLevelPackagecom.curso.reserva

    roo>jpasetupproviderHIBERNATEdatabaseHYPERSONIC_IN_MEMORY

    //Definicindelasentidades

    roo>entityclass~.domain.TipoLibrotestAutomatically

    fieldstringfieldNamenombrenotNullsizeMin3sizeMax20

    fieldstringfieldNamedescripcion

    roo>entityclass~.domain.AutortestAutomatically

    fieldstringfieldNamenombrenotNull

    fieldstringfieldNamebiografia

    roo>enumtypeclass~.reference.FormatoLibro

    enumconstantnamepapel

    enumconstantnamedigital

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 19

    Demo 2 Aplicacin Reserva de Libros (4/9)

    roo>entityclass~.domain.ReservatestAutomatically

    roo>fieldstringfieldNamenombrenotNull

    roo>fieldstringfieldNameemailnotNull

    roo>entityclass~.domain.LibrotestAutomatically

    roo>fieldstringfieldNameisbnnotNullsizeMin10sizeMax13

    roo>fieldstringfieldNametitulonotNull

    roo>fieldstringfieldNameresumensizeMax250

    roo>fielddatefieldNamefechaPublicaciontypejava.util.Date

    roo>fieldnumberfieldNamenumeroPaginastypeint

    roo>fieldenumfieldNameformatotype~.reference.FormatoLibronotNull

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 20

    Demo 2 Aplicacin Reserva de Libros (5/9)

    //RelacinUnoauno

    roo>fieldreferencefieldNametipotype~.domain.TipoLibronotNullclass~.domain.Libro

    //RelacinUnoamuchos

    roo>fieldreferencefieldNamelibrotype~.domain.Libroclass~.domain.Reserva

    roo>fieldsetfieldNamereservastype~.domain.ReservamappedBylibronotNullfalsecardinalityONE_TO_MANYclass~.domain.Libro

    //RelacinMuchosamuchos

    roo>fieldsetfieldNameautorestype~.domain.Autorclass~.domain.Libro

    roo>fieldsetfieldNamelibrostype~.domain.LibromappedByautoresnotNullfalsecardinalityMANY_TO_MANYclass~.domain.Autor

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 21

    Demo 2 Aplicacin Reserva de Libros (6/9)

    //Scaffoldingautomticodelacapaweb

    roo>webmvcsetup

    roo>webmvcallpackage~.web

    roo>webmvclanguagecodees

    //Buscadores

    roo>finderaddfinderNamefindLibroesByIsbnclass~.domain.Libro

    roo>finderaddfinderNamefindLibroesByTituloclass~.domain.Libro

    roo>webmvcfinderall

    //Ajustedelniveldelog

    roo>loggingsetuplevelINFO

    roo>performtests

    roo>performeclipse

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 22

    Demo 2 Aplicacin Reserva de Libros (7/9)

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 23

    Demo 2 Aplicacin Reserva de Libros (8/9)

    Aadiendo seguridadEl comando 'security setup' aade Spring Security a la aplicacin.

    Para ello:Crea el fichero applicationContext-security.xml con la configuracin de Spring Security.Crea la vista login.jspx para la pgina de login.Actualiza el fichero web.xml para utilizar el filtro Spring Security para controlar el acceso a los recursos securizados.Actualiza pom.xml para aadir las dependencias de Spring Security.

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 24

    Demo 2 Aplicacin Reserva de Libros (9/9)

    Aadiendo seguridadapplicationContext-security.xml

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 25

    Novedades Spring Roo 1.2

    Spring Roo ha tomado un enfoque prctico para reducir la complejidad, a menudo innecesaria, de las capa de servicio, repositorio o DAO. La nueva versin de Spring Roo1.2.0.M1 incluye mayor soportepara capas de arquitectura. Pudiendo configurarlas a medida a las necesidades de la aplicacin.1.2.0.RC1 soportara proyectosMaven multi modulo.

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 26

    Arquitectura Roo

    Construido sobre el contenedor OSGi Apache Felix.Spring Roo se compone de Core Modules y Base Add-Ons

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 27

    Add-Ons

    Podemos crear add-ons propios con el add-on 'Add-on Creator'Permite crear add-ons simples o avanzados

    El add-on simple es para crear configuraciones, modificar ficheros, o para copiar artefactos.El add-on avanzado es cuando se quiere generar cdigo Java y AspectJ ITDs

    Trabaja con las utility classes y servicios proporcionados por Spring RooLos desarrolladores pueden instalar add-ons disponibles en RooBot u otros repositorios.

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 28

    Alternativas a Roo?

    GrailsApache IsisAppFuseOpenXava

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

  • 29

    Documentacin

    ReferenciaSpring ROO Documentacin de referenciaSpring ROO - ForogvNIX - Documentacin de referencia

    Libros

    ISC - 2011Paulo Clavijo Esteban

    [email protected]

    Pgina 1Pgina 2Pgina 3Pgina 4Pgina 5Pgina 6Pgina 7Pgina 8Pgina 9Pgina 10Pgina 11Pgina 12Pgina 13Pgina 14Pgina 15Pgina 16Pgina 17Pgina 18Pgina 19Pgina 20Pgina 21Pgina 22Pgina 23Pgina 24Pgina 25Pgina 26Pgina 27Pgina 28Pgina 29


Recommended