SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Introducción a Spring ROO.
Productividad extrema en 10 minutos.
Javier Onsurbe González
IntroduciendoROO
2
Que es ROO?
 ROO es una herramienta para el desarrollo rápido de
aplicaciones.
 ROO es para el momento de desarrollo no es necesaria para
la ejecución de la aplicación.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
3
Visión General
INTRODUCIENDO SPRING ROO
IntroduciendoROO
4
Fácil de aprender y usar
 Gran usabilidad.
 Comandos “hint” y “help” para guiarte.
 Ayudas de tabulación para acercarte a todo.
 Ocultación de comandos y conciencia de contexto automática.
 Si cometes un error, Roo te permite deshacer los cambios.
 Permite la ejecución basada en scripts.
 ROO actúa de manera previsible y conservadora en todos los
casos.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
5
Librerías familiares
Roo esta basado en todas las librerías y herramientas que ya
conocemos las cuales son maduras, probadas y populares:
 Java.
 Spring Framework.
 Java Persistence API.
 Java Server Pages.
 Spring Security.
 Spring Web Flow.
 Log4j, Maven 2, Aspectj, Eclipse/STS…
INTRODUCIENDO SPRING ROO
IntroduciendoROO
6
Generación activa
INTRODUCIENDO SPRING ROO
IntroduciendoROO
7
Que nos proporciona
 Gestión del proyecto
 Objetos generales
 Soporte de entidades
 Gestión de campos
 Persistencia
 Testeo JUnit
 Búsquedas dinámicas
 Spring MVC, Spring Web Flow y Selenium
 JMS, SMTP y integración con el sistema de construcción.
 Spring Security, configuración de logs…
INTRODUCIENDO SPRING ROO
IntroduciendoROO
8
Gestión del proyecto
 Comandos
 “project”, crea un nuevo proyecto en el directorio actual.
 “dependency add” añade una dependencia a nuestro pom.
 “dependency remove” quita una dependencia de nuestro pom.
 “backup” crea un zip de nuestro proyecto.
 Todas las dependencias usan el repositorio de paquetes
enterprise
 Versiones que cumplen los criterios de calidad y son compatibles
con OSGi
INTRODUCIENDO SPRING ROO
IntroduciendoROO
9
Objetos Generales
 Anotaciones ROO que se ajusta para cualquier clase
 @ROOJavaBean, getters y setters automaticos.
 @ROOConfigurable, Añade el Spring @Configurable.
 @ROOToString, vete a saber que hace esta ;-).
 ROO mantendrá automáticamente el código por ti
 ROO no te aparta de tu camino
 El se sitúa en segundo plano y escribe el código que tu no
escribes.
 No tienes que “decirle” que deje de hacer algo.
 No hace falta que uses el shell de ROO.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
10
Soporte de entidades
 “entity” crea una @ROOEntity
 Proporciona una entidad flexible y rica en caracteristicas.
 Declara una entidad JPA con id, version, EntityManager y el
constructor por defecto.
 Automáticamente añade métodos count, findAll, findById,
findEntries, persist, remove, merge, flush a la entidad.
 El comando acepta un montón de directivas opcionales
 Si necesitas un test de integración.
 Nombre de la tabla, nombre de la columna del id, etc.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
11
Gestión de campos
 Comandos “field” con las mayoría de los tipos importantes
 Los comandos de campos tienen opciones para
 Anotaciones especificas de JPA (--fetch, --column, etc).
 Anotaciones de validación (--max, etc).
 Modificadores java (--primitive, --transient, etc).
 El shell recuerda la ultima entidad con la que has trabajado
 Los campos son automáticamente añadidos a esa entidad, con
lo que te evitas el uso de --class
INTRODUCIENDO SPRING ROO
IntroduciendoROO
12
Testeo con JUnit
 “test integration” Test de integración de JUnit
 Característica automática de “datos bajo demanda” para
proporcionar datos.
 Esto es implícito con “entity --testAutomatically”
 “test mock” Test con mocks de JUnit
 “dod” crea una clase para datos bajo demanda
 Raramente se usa directamente, se crea si un test lo requiere
INTRODUCIENDO SPRING ROO
IntroduciendoROO
13
Buscadores dinamicos
 Te evitan de tener que escribir búsquedas JPA QL
 ROO las escribe por ti.
 Los buscadores son añadidos como métodos estáticos en las
entidades
 Son compatibles con clases abstractas.
 “finder list” te indica todos los buscadores disponibles.
 “finder add” habilita un buscador especifico.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
14
Spring MVC
 “controller scaffold”, un controlador automático
 Controlador “REST” para una entidad dada.
 Creación automática de JSP y mantenimiento.
 CRUD
 “controller all” controladores automáticos para todas las
entidades
 “controller class” stub para un controlador manual
 Solo el controlador, tu escribes el resto.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
15
Pila web
 Spring js, Tiles y reescritura de Url’s automática
 “selenium test”, test para el controlador indicado (scaffold)
 Arranca tomcat con “mvn tomcat:run”
 Lanza el test con mvn selenium:selenese
 “webflow”, crea un flujo con Spring Web Flow
INTRODUCIENDO SPRING ROO
IntroduciendoROO
16
Mensajeria: SMTP y JMS
 “email sender setup” configura el correo de salida con Spring
Java Mail.
 “email template setup” Crea una plantilla para un
SimpleMailMessage
 “jms setup” configura el soporte de jms.
 “jms listener” crea una clase la cual es un consumidor
asíncrono de JMS
INTRODUCIENDO SPRING ROO
IntroduciendoROO
17
Integración con el sistema de construcción
 Opciones de construcción surtidas
 “perform clean” ejecuta “mvn clean eclipse:clean”
 “perform eclipse” ejecuta “mvn eclipse:eclipse”
 “perform test” ejecuta “mvn test”
 “perform package” ejecuta “mvn package”
 “perform command” mvn personalizado
 Tienes que tener Maven 2 configurado y el path
 A menudo usados al final de los ficheros de script
 Verificar el éxito.
 Generar los fichero de eclipse para poder continuar el trabajo
INTRODUCIENDO SPRING ROO
IntroduciendoROO
18
Cajón de sastre
 “security setup” configura Spring Security
 “logging setup” configura el Log4j
 “script” ejecuta un script
INTRODUCIENDO SPRING ROO
IntroduciendoROO
19
Persistencia
 “persistence setup”
 Usa “--provider” para seleccionar Hibernate, OpenJpa o
EclipseLink
 Usa “--database” para la mayoría de las bases de datos
 Comandos relacionados
 “database properties list” lista de las propiedades del JDBC
 “database properties set” Cambia las propiedades del JDBC
 “database properties remove” borra las propiedades del JDBC
 Puedes ejecutar el “persistence setup” en cualquier momento
 P.e.- para cambiar de proveedor de JPA.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
20
Quitar ROO
 Usando push-in refactoring de AJDT, esto moverá todos el
contenido de los aspectos a los .java correspondientes.
 Eliminando los jar de las anotaciones ROO de tus pom.
 Borrando las anotaciones @ROO* de ficheros .java.
INTRODUCIENDO SPRING ROO
IntroduciendoROO
21
Javier Onsurbe Gónzalez
javier_onsurbe@yahoo.es
Calle Telémaco, 9 5º-A
Torreón de Ardoz (Madrid)
http://unpocodejava.wordpress.com/

Weitere ähnliche Inhalte

Ähnlich wie Presentacion Spring Roo Java Mania

Presentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaPresentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaJavier Onsurbe
 
Introducción a Spring Roo
Introducción a Spring RooIntroducción a Spring Roo
Introducción a Spring RooPaulo Clavijo
 
Trabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yennyTrabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yennyyenny isabel cuello moron
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Frameworkecontinua
 
[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
 
Clasen1java
Clasen1javaClasen1java
Clasen1javajbersosa
 
Programación web framework djando - noviembre de 2014
Programación web   framework djando - noviembre de 2014Programación web   framework djando - noviembre de 2014
Programación web framework djando - noviembre de 2014SandraMartinezG
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POOsena
 
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
 
Programación web framework django - noviembre de 2014
Programación web   framework django - noviembre de 2014Programación web   framework django - noviembre de 2014
Programación web framework django - noviembre de 2014Eduardo Ernesto Lechuga
 

Ähnlich wie Presentacion Spring Roo Java Mania (20)

Presentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaPresentacion Spring Roo Java Mania
Presentacion Spring Roo Java Mania
 
Manual de eclipse
Manual de eclipseManual de eclipse
Manual de eclipse
 
Introducción a Spring Roo
Introducción a Spring RooIntroducción a Spring Roo
Introducción a Spring Roo
 
Trabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yennyTrabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yenny
 
Manual tecnico umasoft
Manual tecnico umasoftManual tecnico umasoft
Manual tecnico umasoft
 
Python django
Python djangoPython django
Python django
 
spring framework
spring frameworkspring framework
spring framework
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
[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
 
Clasen1java
Clasen1javaClasen1java
Clasen1java
 
Programación web framework djando - noviembre de 2014
Programación web   framework djando - noviembre de 2014Programación web   framework djando - noviembre de 2014
Programación web framework djando - noviembre de 2014
 
Tutorial eclipse
Tutorial eclipseTutorial eclipse
Tutorial eclipse
 
Dando saltos con Spring Roo
Dando saltos con Spring RooDando saltos con Spring Roo
Dando saltos con Spring Roo
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 
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
 
Programación web framework django - noviembre de 2014
Programación web   framework django - noviembre de 2014Programación web   framework django - noviembre de 2014
Programación web framework django - noviembre de 2014
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Java jaucito
Java jaucitoJava jaucito
Java jaucito
 

Kürzlich hochgeladen

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
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
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
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
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
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
 

Kürzlich hochgeladen (20)

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
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
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
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
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
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
 

Presentacion Spring Roo Java Mania

  • 1. Introducción a Spring ROO. Productividad extrema en 10 minutos. Javier Onsurbe González
  • 2. IntroduciendoROO 2 Que es ROO?  ROO es una herramienta para el desarrollo rápido de aplicaciones.  ROO es para el momento de desarrollo no es necesaria para la ejecución de la aplicación. INTRODUCIENDO SPRING ROO
  • 4. IntroduciendoROO 4 Fácil de aprender y usar  Gran usabilidad.  Comandos “hint” y “help” para guiarte.  Ayudas de tabulación para acercarte a todo.  Ocultación de comandos y conciencia de contexto automática.  Si cometes un error, Roo te permite deshacer los cambios.  Permite la ejecución basada en scripts.  ROO actúa de manera previsible y conservadora en todos los casos. INTRODUCIENDO SPRING ROO
  • 5. IntroduciendoROO 5 Librerías familiares Roo esta basado en todas las librerías y herramientas que ya conocemos las cuales son maduras, probadas y populares:  Java.  Spring Framework.  Java Persistence API.  Java Server Pages.  Spring Security.  Spring Web Flow.  Log4j, Maven 2, Aspectj, Eclipse/STS… INTRODUCIENDO SPRING ROO
  • 7. IntroduciendoROO 7 Que nos proporciona  Gestión del proyecto  Objetos generales  Soporte de entidades  Gestión de campos  Persistencia  Testeo JUnit  Búsquedas dinámicas  Spring MVC, Spring Web Flow y Selenium  JMS, SMTP y integración con el sistema de construcción.  Spring Security, configuración de logs… INTRODUCIENDO SPRING ROO
  • 8. IntroduciendoROO 8 Gestión del proyecto  Comandos  “project”, crea un nuevo proyecto en el directorio actual.  “dependency add” añade una dependencia a nuestro pom.  “dependency remove” quita una dependencia de nuestro pom.  “backup” crea un zip de nuestro proyecto.  Todas las dependencias usan el repositorio de paquetes enterprise  Versiones que cumplen los criterios de calidad y son compatibles con OSGi INTRODUCIENDO SPRING ROO
  • 9. IntroduciendoROO 9 Objetos Generales  Anotaciones ROO que se ajusta para cualquier clase  @ROOJavaBean, getters y setters automaticos.  @ROOConfigurable, Añade el Spring @Configurable.  @ROOToString, vete a saber que hace esta ;-).  ROO mantendrá automáticamente el código por ti  ROO no te aparta de tu camino  El se sitúa en segundo plano y escribe el código que tu no escribes.  No tienes que “decirle” que deje de hacer algo.  No hace falta que uses el shell de ROO. INTRODUCIENDO SPRING ROO
  • 10. IntroduciendoROO 10 Soporte de entidades  “entity” crea una @ROOEntity  Proporciona una entidad flexible y rica en caracteristicas.  Declara una entidad JPA con id, version, EntityManager y el constructor por defecto.  Automáticamente añade métodos count, findAll, findById, findEntries, persist, remove, merge, flush a la entidad.  El comando acepta un montón de directivas opcionales  Si necesitas un test de integración.  Nombre de la tabla, nombre de la columna del id, etc. INTRODUCIENDO SPRING ROO
  • 11. IntroduciendoROO 11 Gestión de campos  Comandos “field” con las mayoría de los tipos importantes  Los comandos de campos tienen opciones para  Anotaciones especificas de JPA (--fetch, --column, etc).  Anotaciones de validación (--max, etc).  Modificadores java (--primitive, --transient, etc).  El shell recuerda la ultima entidad con la que has trabajado  Los campos son automáticamente añadidos a esa entidad, con lo que te evitas el uso de --class INTRODUCIENDO SPRING ROO
  • 12. IntroduciendoROO 12 Testeo con JUnit  “test integration” Test de integración de JUnit  Característica automática de “datos bajo demanda” para proporcionar datos.  Esto es implícito con “entity --testAutomatically”  “test mock” Test con mocks de JUnit  “dod” crea una clase para datos bajo demanda  Raramente se usa directamente, se crea si un test lo requiere INTRODUCIENDO SPRING ROO
  • 13. IntroduciendoROO 13 Buscadores dinamicos  Te evitan de tener que escribir búsquedas JPA QL  ROO las escribe por ti.  Los buscadores son añadidos como métodos estáticos en las entidades  Son compatibles con clases abstractas.  “finder list” te indica todos los buscadores disponibles.  “finder add” habilita un buscador especifico. INTRODUCIENDO SPRING ROO
  • 14. IntroduciendoROO 14 Spring MVC  “controller scaffold”, un controlador automático  Controlador “REST” para una entidad dada.  Creación automática de JSP y mantenimiento.  CRUD  “controller all” controladores automáticos para todas las entidades  “controller class” stub para un controlador manual  Solo el controlador, tu escribes el resto. INTRODUCIENDO SPRING ROO
  • 15. IntroduciendoROO 15 Pila web  Spring js, Tiles y reescritura de Url’s automática  “selenium test”, test para el controlador indicado (scaffold)  Arranca tomcat con “mvn tomcat:run”  Lanza el test con mvn selenium:selenese  “webflow”, crea un flujo con Spring Web Flow INTRODUCIENDO SPRING ROO
  • 16. IntroduciendoROO 16 Mensajeria: SMTP y JMS  “email sender setup” configura el correo de salida con Spring Java Mail.  “email template setup” Crea una plantilla para un SimpleMailMessage  “jms setup” configura el soporte de jms.  “jms listener” crea una clase la cual es un consumidor asíncrono de JMS INTRODUCIENDO SPRING ROO
  • 17. IntroduciendoROO 17 Integración con el sistema de construcción  Opciones de construcción surtidas  “perform clean” ejecuta “mvn clean eclipse:clean”  “perform eclipse” ejecuta “mvn eclipse:eclipse”  “perform test” ejecuta “mvn test”  “perform package” ejecuta “mvn package”  “perform command” mvn personalizado  Tienes que tener Maven 2 configurado y el path  A menudo usados al final de los ficheros de script  Verificar el éxito.  Generar los fichero de eclipse para poder continuar el trabajo INTRODUCIENDO SPRING ROO
  • 18. IntroduciendoROO 18 Cajón de sastre  “security setup” configura Spring Security  “logging setup” configura el Log4j  “script” ejecuta un script INTRODUCIENDO SPRING ROO
  • 19. IntroduciendoROO 19 Persistencia  “persistence setup”  Usa “--provider” para seleccionar Hibernate, OpenJpa o EclipseLink  Usa “--database” para la mayoría de las bases de datos  Comandos relacionados  “database properties list” lista de las propiedades del JDBC  “database properties set” Cambia las propiedades del JDBC  “database properties remove” borra las propiedades del JDBC  Puedes ejecutar el “persistence setup” en cualquier momento  P.e.- para cambiar de proveedor de JPA. INTRODUCIENDO SPRING ROO
  • 20. IntroduciendoROO 20 Quitar ROO  Usando push-in refactoring de AJDT, esto moverá todos el contenido de los aspectos a los .java correspondientes.  Eliminando los jar de las anotaciones ROO de tus pom.  Borrando las anotaciones @ROO* de ficheros .java. INTRODUCIENDO SPRING ROO
  • 21. IntroduciendoROO 21 Javier Onsurbe Gónzalez javier_onsurbe@yahoo.es Calle Telémaco, 9 5º-A Torreón de Ardoz (Madrid) http://unpocodejava.wordpress.com/