SlideShare una empresa de Scribd logo
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/

Más contenido relacionado

Similar a 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
 

Similar a 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
 

Último

Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialEducática
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdffrank0071
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.sofiasonder
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusraquelariza02
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfprofmartinsuarez
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestrerafaelsalazar0615
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiegoCampos433849
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docxwerito139410
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometriasofiasonder
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdfIsabelHuairaGarma
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.saravalentinat22
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx44652726
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfjjfch3110
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaFernando Villares
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf7adelosriosarangojua
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxencinasm992
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxLeidyfuentes19
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxJohanna4222
 

Último (20)

Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..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/