SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Introducción a Spring Roo
Desarrollo Java EE altamente productivo




                                                       Your Name
                                           Line 1 of Your Affiliation
                                          ISC – Noviembre 2011
                                           Line 2 of Your Affiliation
                                          Paulo Clavijo Esteban
                                          clavijo_pau@ingenieriadesoftware.com


                                                                            1
Agenda

 Introducción a Spring Roo
   Objetivo Principal
   ¿Qué es Spring Roo?
   Spring Roo CLI
   Generando una aplicación de ejemplo.
   Tecnologías y Arquitectura
   Núcleo y Add-ons.
 Demo – Aplicación Reserva Libros




                               ISC - 2011
                          Paulo Clavijo Esteban
                    clavijo_pau@ingenieriadesoftware.com   2
Objetivo Principal




            “El objetivo principal de Spring
           ROO es mejorar la productividad
              de los desarrollos Java sin
             comprometer la integridad y
                flexibilidad del sistema”




                                ISC - 2011
                           Paulo Clavijo Esteban
                     clavijo_pau@ingenieriadesoftware.com   3
¿Qué es Spring Roo?

  Ben Alex:


          “Roo es un pequeño genio que
        observa desde un segundo plano y
        gestiona todo aquello de lo que no
              me quiero preocupar”




                                 ISC - 2011
                            Paulo Clavijo Esteban
                      clavijo_pau@ingenieriadesoftware.com   4
¿Qué es Spring Roo?

  Spring Roo es una herramienta de desarrollo
  rápido de aplicaciones o RAD, que permite el
  desarrollo de aplicaciones Java EE de forma muy
  productiva y cómoda para el desarrollador.

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


                                 ISC - 2011
                            Paulo Clavijo Esteban
                      clavijo_pau@ingenieriadesoftware.com   5
Características principales (1/3)

  Generación de código (activa y pasiva) para
  aplicaciones Java con Spring.
  Elimina el trabajo tedioso centrando el desarrollo
  en la lógica de negocio.
  Paradigma CoC (Convención sobre configuración).
  Enfoque DDD (Domain-Driven Development).
     Dirigido por el modelo de entidades.
     Lógica en las entidades (Real Object Oriented), elimina capas
     redundantes.
     Rich Domain Model (RDM) en oposición al anti-patrón
     Anemic Domain Model (ADM).


                                     ISC - 2011
                                Paulo Clavijo Esteban
                          clavijo_pau@ingenieriadesoftware.com       6
Arquitectura DDD




                              ISC - 2011
                         Paulo Clavijo Esteban
                   clavijo_pau@ingenieriadesoftware.com   7
Características principales (2/3)

  Crea un proyecto en segundos.
  Realimentación: añade valor durante todo el ciclo de vida.
  Las aplicaciones siguen las mejores prácticas de diseño.
  Permite auto-generar test unitarios y de integración.
  No incorpora elementos adicionales al entorno de
  ejecución, por lo que no penaliza la velocidad la
  aplicación.
  No requiere ningún IDE.
  Recibe instrucciones a través de una consola interactiva
  con auto-completado y ayuda en línea.



                                  ISC - 2011
                             Paulo Clavijo Esteban
                       clavijo_pau@ingenieriadesoftware.com    8
Características principales (3/3)

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




                                    ISC - 2011
                               Paulo Clavijo Esteban
                         clavijo_pau@ingenieriadesoftware.com      9
Spring Roo CLI

  Spring Roo es una herramienta de Linea de Comandos (CLI).
  De fácil 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 - 2011
                             Paulo Clavijo Esteban
                       clavijo_pau@ingenieriadesoftware.com   10
Generando una aplicación en minutos

   Demo 1 – Aplicación Inventario

roo> project ­­topLevelPackage com.curso.inventario
roo> jpa setup ­­provider HIBERNATE ­­database HYPERSONIC_IN_MEMORY
roo> entity ­­class ~.domain.Producto ­­testAutomatically
roo> field number ­­fieldName idProducto ­­type int ­­notNull
roo> field string ­­fieldName nombre ­­notNull
roo> field string ­­fieldName descripcion
roo> field number ­­fieldName precio ­­type double
roo> web mvc setup
roo> web mvc all ­­package ~.web
roo> perform tests




                                      ISC - 2011
                                 Paulo Clavijo Esteban
                           clavijo_pau@ingenieriadesoftware.com       11
Generando una aplicación




                               ISC - 2011
                          Paulo Clavijo Esteban
                    clavijo_pau@ingenieriadesoftware.com   12
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 Weaving
     Configurar refresco automático:
       Preferences > General > Workspace > Refresh using native
       hooks or polling




                                    ISC - 2011
                               Paulo Clavijo Esteban
                         clavijo_pau@ingenieriadesoftware.com     13
Código Java generado

  Roo genera código que podemos dividir en dos categorías:
     Código gestionado por Spring Roo.
        Ficheros AspectJ ITD (extensión .aj)
  Código gestionado por el programador.
        Fuentes Java
  En tiempo de compilación, el código en los ficheros .aj, es tejido
  (weaved) en el código de los fuentes Java.




                                      ISC - 2011
                                 Paulo Clavijo Esteban
                           clavijo_pau@ingenieriadesoftware.com        14
Infraestructura Roo




                                 ISC - 2011
                            Paulo Clavijo Esteban
                      clavijo_pau@ingenieriadesoftware.com   15
Demo 2 – Aplicación Reserva de Libros (1/9)

  Requerimientos
    La aplicación debe permitir administrar las entidades Libro,
    TipoLibro, Autor y Reserva. Así como la búsqueda de Libro por
    ISBN o titulo.
    Seguridad
       Las páginas de gestión de Libro, TipoLibro y Autor son accesible a
       usuarios del rol ROLE_ADMIN
       La página de gestión de Reserva es accesible para usuarios del rol
       ROLE_USER
    Pruebas
       Test de integración de las entidades
       Test automáticos de la capa Web con Selenium




                                     ISC - 2011
                                Paulo Clavijo Esteban
                          clavijo_pau@ingenieriadesoftware.com          16
Demo 2 – Aplicación Reserva de Libros (2/9)

  Modelo de Dominio




    Relación One-to-one entre las entidades Libro y TipoLibro
    Relación Many-to-one entre las entidades Reserva y Libro
    Relación Many-to-Many entre las entidades Libro y Autor


                                        ISC - 2011
                                   Paulo Clavijo Esteban
                             clavijo_pau@ingenieriadesoftware.com   17
Demo 2 – Aplicación Reserva de Libros (3/9)

roo> project ­­topLevelPackage com.curso.reserva
roo> jpa setup ­­provider HIBERNATE ­­database HYPERSONIC_IN_MEMORY


// Definición de las entidades
roo> entity ­­class ~.domain.TipoLibro ­­testAutomatically
field string ­­fieldName nombre ­­notNull ­­sizeMin 3 ­­sizeMax 20
field string ­­fieldName descripcion


roo> entity ­­class ~.domain.Autor ­­testAutomatically
field string ­­fieldName nombre ­­notNull
field string ­­fieldName biografia


roo> enum type ­­class ~.reference.FormatoLibro
enum constant ­­name papel
enum constant ­­name digital


                                        ISC - 2011
                                   Paulo Clavijo Esteban
                             clavijo_pau@ingenieriadesoftware.com     18
Demo 2 – Aplicación Reserva de Libros (4/9)

roo> entity ­­class ~.domain.Reserva ­­testAutomatically 
roo> field string ­­fieldName nombre ­­notNull 
roo> field string ­­fieldName email ­­notNull


roo> entity ­­class ~.domain.Libro ­­testAutomatically 
roo> field string ­­fieldName isbn ­­notNull ­­sizeMin 10 ­­sizeMax 13
roo> field string ­­fieldName titulo ­­notNull
roo> field string ­­fieldName resumen ­­sizeMax 250
roo> field date ­­fieldName fechaPublicacion ­­type java.util.Date
roo> field number ­­fieldName numeroPaginas ­­type int
roo> field enum ­­fieldName formato ­­type ~.reference.FormatoLibro 
­­notNull




                                      ISC - 2011
                                 Paulo Clavijo Esteban
                           clavijo_pau@ingenieriadesoftware.com        19
Demo 2 – Aplicación Reserva de Libros (5/9)

//Relación Uno a uno
roo> field reference ­­fieldName tipo ­­type ~.domain.TipoLibro 
­­notNull ­­class ~.domain.Libro


//Relación Uno a muchos
roo> field reference ­­fieldName libro ­­type ~.domain.Libro ­­class 
~.domain.Reserva
roo> field set ­­fieldName reservas ­­type ~.domain.Reserva ­­mappedBy 
libro ­­notNull false ­­cardinality ONE_TO_MANY  ­­class 
~.domain.Libro


//Relación Muchos a muchos
roo> field set ­­fieldName autores ­­type ~.domain.Autor ­­class 
~.domain.Libro
roo> field set ­­fieldName libros ­­type ~.domain.Libro ­­mappedBy 
autores ­­notNull false ­­cardinality MANY_TO_MANY ­­class 
~.domain.Autor

                                        ISC - 2011
                                   Paulo Clavijo Esteban
                             clavijo_pau@ingenieriadesoftware.com       20
Demo 2 – Aplicación Reserva de Libros (6/9)

// Scaffolding automático de la capa web
roo> web mvc setup
roo> web mvc all ­­package ~.web
roo> web mvc language ­­code es


//Buscadores
roo> finder add ­­finderName findLibroesByIsbn ­­class ~.domain.Libro
roo> finder add ­­finderName findLibroesByTitulo ­­class ~.domain.Libro
roo> web mvc finder all


// Ajuste del nivel de log
roo> logging setup ­­level INFO


roo> perform tests
roo> perform eclipse


                                        ISC - 2011
                                   Paulo Clavijo Esteban
                             clavijo_pau@ingenieriadesoftware.com       21
Demo 2 – Aplicación Reserva de Libros (7/9)




                                ISC - 2011
                           Paulo Clavijo Esteban
                     clavijo_pau@ingenieriadesoftware.com   22
Demo 2 – Aplicación Reserva de Libros (8/9)

  Añadiendo seguridad
    El comando 'security setup' añade Spring Security a la
    aplicación.




    Para ello:
       Crea el fichero applicationContext-security.xml con la configuración de
       Spring Security.
       Crea la vista login.jspx para la página 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 añadir las dependencias de Spring Security.


                                        ISC - 2011
                                   Paulo Clavijo Esteban
                             clavijo_pau@ingenieriadesoftware.com                  23
Demo 2 – Aplicación Reserva de Libros (9/9)

    Añadiendo seguridad
        applicationContext-security.xml

        <intercept­url pattern="/autors/**" access="hasRole('ROLE_ADMIN')"/>
        <intercept­url pattern="/libroes/**" access="hasRole('ROLE_ADMIN')"/>
        <intercept­url pattern="/tipolibroes/**" access="hasRole('ROLE_ADMIN')"/>
        <intercept­url pattern="/reservas/**" access="hasRole('ROLE_USER')"/>
        <intercept­url pattern="/**" access="permitAll" />




                                               ISC - 2011
                                          Paulo Clavijo Esteban
                                    clavijo_pau@ingenieriadesoftware.com            24
Novedades Spring Roo 1.2

  Spring Roo ha tomado un enfoque práctico para reducir la
  complejidad, a menudo innecesaria, de las capa de servicio,
  repositorio o DAO.
  La nueva versión de Spring Roo
  1.2.0.M1 incluye mayor soporte
  para capas de arquitectura.
  Pudiendo configurarlas a medida
  a las necesidades de la aplicación.
  1.2.0.RC1 soportara proyectos
  Maven multi modulo.



                                   ISC - 2011
                              Paulo Clavijo Esteban
                        clavijo_pau@ingenieriadesoftware.com    25
Arquitectura Roo

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




                                ISC - 2011
                           Paulo Clavijo Esteban
                     clavijo_pau@ingenieriadesoftware.com   26
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 código
     Java y AspectJ ITDs
  Trabaja con las utility classes y servicios proporcionados por
  Spring Roo
  Los desarrolladores pueden instalar add-ons disponibles en
  RooBot u otros repositorios.



                                    ISC - 2011
                               Paulo Clavijo Esteban
                         clavijo_pau@ingenieriadesoftware.com      27
Alternativas a Roo?

  Grails
  Apache Isis
  AppFuse
  OpenXava




                                 ISC - 2011
                            Paulo Clavijo Esteban
                      clavijo_pau@ingenieriadesoftware.com   28
Documentación

  Referencia
    Spring ROO – Documentación de referencia
    Spring ROO - Foro
    gvNIX - Documentación de referencia
  Libros




                               ISC - 2011
                          Paulo Clavijo Esteban
                    clavijo_pau@ingenieriadesoftware.com   29

Weitere ähnliche Inhalte

Ähnlich wie Spring Roo introducción

Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Banco de reactivos para primer examen oral
Banco de reactivos para primer examen oralBanco de reactivos para primer examen oral
Banco de reactivos para primer examen oralangelzykro
 
Banco de reactivos para primer examen oral
Banco de reactivos para primer examen oralBanco de reactivos para primer examen oral
Banco de reactivos para primer examen oralangelzykro
 
Paola gonzalez fundamentos de visual basic
Paola gonzalez fundamentos de visual basicPaola gonzalez fundamentos de visual basic
Paola gonzalez fundamentos de visual basicpaolagonzalez326
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a javawaldinelly
 
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring FrameworkGabriel Oliva
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014Neptuno Networks
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptxjohann
 
[ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java [ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java Eudris Cabrera
 
Universidad nacional de chimborazo
Universidad nacional de chimborazoUniversidad nacional de chimborazo
Universidad nacional de chimborazoJesica Pérez
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesJaqueline Luna
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 

Ähnlich wie Spring Roo introducción (20)

Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Banco de reactivos para primer examen oral
Banco de reactivos para primer examen oralBanco de reactivos para primer examen oral
Banco de reactivos para primer examen oral
 
Banco de reactivos para primer examen oral
Banco de reactivos para primer examen oralBanco de reactivos para primer examen oral
Banco de reactivos para primer examen oral
 
Paola gonzalez fundamentos de visual basic
Paola gonzalez fundamentos de visual basicPaola gonzalez fundamentos de visual basic
Paola gonzalez fundamentos de visual basic
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
C# 5 los fundamentos del lenguaje
C# 5 los fundamentos del lenguajeC# 5 los fundamentos del lenguaje
C# 5 los fundamentos del lenguaje
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
Spring
SpringSpring
Spring
 
framework.pptx
framework.pptxframework.pptx
framework.pptx
 
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
Msdn Webcast   InyeccióN De Dependencias Con Spring FrameworkMsdn Webcast   InyeccióN De Dependencias Con Spring Framework
Msdn Webcast InyeccióN De Dependencias Con Spring Framework
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Introducción a Spring framework
Introducción a Spring frameworkIntroducción a Spring framework
Introducción a Spring framework
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptx
 
[ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java [ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Universidad nacional de chimborazo
Universidad nacional de chimborazoUniversidad nacional de chimborazo
Universidad nacional de chimborazo
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móviles
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 

Mehr von Paulo Clavijo

Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021Paulo Clavijo
 
User story slicing exercise
User story slicing exerciseUser story slicing exercise
User story slicing exercisePaulo Clavijo
 
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020Paulo Clavijo
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019Paulo Clavijo
 
Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019Paulo Clavijo
 
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019Paulo Clavijo
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019Paulo Clavijo
 
TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018Paulo Clavijo
 
Outside-in TDD with Test Doubles
Outside-in TDD with Test DoublesOutside-in TDD with Test Doubles
Outside-in TDD with Test DoublesPaulo Clavijo
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018Paulo Clavijo
 
Consumer-Driven Contract Testing
Consumer-Driven Contract TestingConsumer-Driven Contract Testing
Consumer-Driven Contract TestingPaulo Clavijo
 
ATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónPaulo Clavijo
 
Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4Paulo Clavijo
 
Gestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBaseGestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBasePaulo Clavijo
 

Mehr von Paulo Clavijo (15)

Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021Consumer-Driven Contract Testing - Workshop - January 2021
Consumer-Driven Contract Testing - Workshop - January 2021
 
User story slicing exercise
User story slicing exerciseUser story slicing exercise
User story slicing exercise
 
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
CI/CD non-breaking changes exercise - Cork Software Crafters - February 2020
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
 
Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019Legacy Code and Refactoring Workshop - Session 1 - October 2019
Legacy Code and Refactoring Workshop - Session 1 - October 2019
 
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
Approval Testing & Mutation Testing - Cork Software Crafters - June 2019
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018TDD and Simple Design Workshop - Session 1 - November 2018
TDD and Simple Design Workshop - Session 1 - November 2018
 
Outside-in TDD with Test Doubles
Outside-in TDD with Test DoublesOutside-in TDD with Test Doubles
Outside-in TDD with Test Doubles
 
Angular and Redux
Angular and ReduxAngular and Redux
Angular and Redux
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
 
Consumer-Driven Contract Testing
Consumer-Driven Contract TestingConsumer-Driven Contract Testing
Consumer-Driven Contract Testing
 
ATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de Aceptación
 
Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4Tests Unitarios con JUnit 4
Tests Unitarios con JUnit 4
 
Gestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBaseGestión de Cambios de BBDD con LiquiBase
Gestión de Cambios de BBDD con LiquiBase
 

Kürzlich hochgeladen

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 

Kürzlich hochgeladen (20)

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 

Spring Roo introducción

  • 1. Introducción a Spring Roo Desarrollo Java EE altamente productivo Your Name Line 1 of Your Affiliation ISC – Noviembre 2011 Line 2 of Your Affiliation Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 1
  • 2. Agenda Introducción a Spring Roo Objetivo Principal ¿Qué es Spring Roo? Spring Roo CLI Generando una aplicación de ejemplo. Tecnologías y Arquitectura Núcleo y Add-ons. Demo – Aplicación Reserva Libros ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 2
  • 3. Objetivo Principal “El objetivo principal de Spring ROO es mejorar la productividad de los desarrollos Java sin comprometer la integridad y flexibilidad del sistema” ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 3
  • 4. ¿Qué es Spring Roo? Ben Alex: “Roo es un pequeño genio que observa desde un segundo plano y gestiona todo aquello de lo que no me quiero preocupar” ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 4
  • 5. ¿Qué es Spring Roo? Spring Roo es una herramienta de desarrollo rápido de aplicaciones o RAD, que permite el desarrollo de aplicaciones Java EE de forma muy productiva y cómoda para el desarrollador. Las aplicaciones resultantes utilizan tecnologías Java conocidas como Spring Framework, Java Persistence API, Java Server Pages, Apache Maven, AspectJ, etc. ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 5
  • 6. Características principales (1/3) Generación de código (activa y pasiva) para aplicaciones Java con Spring. Elimina el trabajo tedioso centrando el desarrollo en la lógica de negocio. Paradigma CoC (Convención sobre configuración). Enfoque DDD (Domain-Driven Development). Dirigido por el modelo de entidades. Lógica en las entidades (Real Object Oriented), elimina capas redundantes. Rich Domain Model (RDM) en oposición al anti-patrón Anemic Domain Model (ADM). ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 6
  • 7. Arquitectura DDD ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 7
  • 8. Características principales (2/3) Crea un proyecto en segundos. Realimentación: añade valor durante todo el ciclo de vida. Las aplicaciones siguen las mejores prácticas de diseño. Permite auto-generar test unitarios y de integración. No incorpora elementos adicionales al entorno de ejecución, por lo que no penaliza la velocidad la aplicación. No requiere ningún IDE. Recibe instrucciones a través de una consola interactiva con auto-completado y ayuda en línea. ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 8
  • 9. Características principales (3/3) Extensible usando bundles OSGi. Aprovecha el conocimiento: no necesita más conocimiento que el necesario para el desarrollo de aplicaciones J2EE. Podemos eliminar Roo de un proyecto en minutos. ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 9
  • 10. Spring Roo CLI Spring Roo es una herramienta de Linea de Comandos (CLI). De fácil 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 - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 10
  • 11. Generando una aplicación en minutos Demo 1 – Aplicación Inventario roo> project ­­topLevelPackage com.curso.inventario roo> jpa setup ­­provider HIBERNATE ­­database HYPERSONIC_IN_MEMORY roo> entity ­­class ~.domain.Producto ­­testAutomatically roo> field number ­­fieldName idProducto ­­type int ­­notNull roo> field string ­­fieldName nombre ­­notNull roo> field string ­­fieldName descripcion roo> field number ­­fieldName precio ­­type double roo> web mvc setup roo> web mvc all ­­package ~.web roo> perform tests ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 11
  • 12. Generando una aplicación ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 12
  • 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 Weaving Configurar refresco automático: Preferences > General > Workspace > Refresh using native hooks or polling ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 13
  • 14. Código Java generado Roo genera código que podemos dividir en dos categorías: Código gestionado por Spring Roo. Ficheros AspectJ ITD (extensión .aj) Código gestionado por el programador. Fuentes Java En tiempo de compilación, el código en los ficheros .aj, es tejido (weaved) en el código de los fuentes Java. ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 14
  • 15. Infraestructura Roo ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 15
  • 16. Demo 2 – Aplicación Reserva de Libros (1/9) Requerimientos La aplicación debe permitir administrar las entidades Libro, TipoLibro, Autor y Reserva. Así como la búsqueda de Libro por ISBN o titulo. Seguridad Las páginas de gestión de Libro, TipoLibro y Autor son accesible a usuarios del rol ROLE_ADMIN La página de gestión de Reserva es accesible para usuarios del rol ROLE_USER Pruebas Test de integración de las entidades Test automáticos de la capa Web con Selenium ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 16
  • 17. Demo 2 – Aplicación Reserva de Libros (2/9) Modelo de Dominio Relación One-to-one entre las entidades Libro y TipoLibro Relación Many-to-one entre las entidades Reserva y Libro Relación Many-to-Many entre las entidades Libro y Autor ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 17
  • 18. Demo 2 – Aplicación Reserva de Libros (3/9) roo> project ­­topLevelPackage com.curso.reserva roo> jpa setup ­­provider HIBERNATE ­­database HYPERSONIC_IN_MEMORY // Definición de las entidades roo> entity ­­class ~.domain.TipoLibro ­­testAutomatically field string ­­fieldName nombre ­­notNull ­­sizeMin 3 ­­sizeMax 20 field string ­­fieldName descripcion roo> entity ­­class ~.domain.Autor ­­testAutomatically field string ­­fieldName nombre ­­notNull field string ­­fieldName biografia roo> enum type ­­class ~.reference.FormatoLibro enum constant ­­name papel enum constant ­­name digital ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 18
  • 19. Demo 2 – Aplicación Reserva de Libros (4/9) roo> entity ­­class ~.domain.Reserva ­­testAutomatically  roo> field string ­­fieldName nombre ­­notNull  roo> field string ­­fieldName email ­­notNull roo> entity ­­class ~.domain.Libro ­­testAutomatically  roo> field string ­­fieldName isbn ­­notNull ­­sizeMin 10 ­­sizeMax 13 roo> field string ­­fieldName titulo ­­notNull roo> field string ­­fieldName resumen ­­sizeMax 250 roo> field date ­­fieldName fechaPublicacion ­­type java.util.Date roo> field number ­­fieldName numeroPaginas ­­type int roo> field enum ­­fieldName formato ­­type ~.reference.FormatoLibro  ­­notNull ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 19
  • 20. Demo 2 – Aplicación Reserva de Libros (5/9) //Relación Uno a uno roo> field reference ­­fieldName tipo ­­type ~.domain.TipoLibro  ­­notNull ­­class ~.domain.Libro //Relación Uno a muchos roo> field reference ­­fieldName libro ­­type ~.domain.Libro ­­class  ~.domain.Reserva roo> field set ­­fieldName reservas ­­type ~.domain.Reserva ­­mappedBy  libro ­­notNull false ­­cardinality ONE_TO_MANY  ­­class  ~.domain.Libro //Relación Muchos a muchos roo> field set ­­fieldName autores ­­type ~.domain.Autor ­­class  ~.domain.Libro roo> field set ­­fieldName libros ­­type ~.domain.Libro ­­mappedBy  autores ­­notNull false ­­cardinality MANY_TO_MANY ­­class  ~.domain.Autor ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 20
  • 21. Demo 2 – Aplicación Reserva de Libros (6/9) // Scaffolding automático de la capa web roo> web mvc setup roo> web mvc all ­­package ~.web roo> web mvc language ­­code es //Buscadores roo> finder add ­­finderName findLibroesByIsbn ­­class ~.domain.Libro roo> finder add ­­finderName findLibroesByTitulo ­­class ~.domain.Libro roo> web mvc finder all // Ajuste del nivel de log roo> logging setup ­­level INFO roo> perform tests roo> perform eclipse ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 21
  • 22. Demo 2 – Aplicación Reserva de Libros (7/9) ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 22
  • 23. Demo 2 – Aplicación Reserva de Libros (8/9) Añadiendo seguridad El comando 'security setup' añade Spring Security a la aplicación. Para ello: Crea el fichero applicationContext-security.xml con la configuración de Spring Security. Crea la vista login.jspx para la página 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 añadir las dependencias de Spring Security. ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 23
  • 24. Demo 2 – Aplicación Reserva de Libros (9/9) Añadiendo seguridad applicationContext-security.xml         <intercept­url pattern="/autors/**" access="hasRole('ROLE_ADMIN')"/>         <intercept­url pattern="/libroes/**" access="hasRole('ROLE_ADMIN')"/>         <intercept­url pattern="/tipolibroes/**" access="hasRole('ROLE_ADMIN')"/>         <intercept­url pattern="/reservas/**" access="hasRole('ROLE_USER')"/>         <intercept­url pattern="/**" access="permitAll" /> ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 24
  • 25. Novedades Spring Roo 1.2 Spring Roo ha tomado un enfoque práctico para reducir la complejidad, a menudo innecesaria, de las capa de servicio, repositorio o DAO. La nueva versión de Spring Roo 1.2.0.M1 incluye mayor soporte para capas de arquitectura. Pudiendo configurarlas a medida a las necesidades de la aplicación. 1.2.0.RC1 soportara proyectos Maven multi modulo. ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 25
  • 26. Arquitectura Roo Construido sobre el contenedor OSGi Apache Felix. Spring Roo se compone de “Core Modules” y “Base Add-Ons” ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 26
  • 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 código Java y AspectJ ITDs Trabaja con las utility classes y servicios proporcionados por Spring Roo Los desarrolladores pueden instalar add-ons disponibles en RooBot u otros repositorios. ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 27
  • 28. Alternativas a Roo? Grails Apache Isis AppFuse OpenXava ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 28
  • 29. Documentación Referencia Spring ROO – Documentación de referencia Spring ROO - Foro gvNIX - Documentación de referencia Libros ISC - 2011 Paulo Clavijo Esteban clavijo_pau@ingenieriadesoftware.com 29