SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Introducción a Spring ROO.



       Productividad extrema en 10 minutos.




Javier Onsurbe González
INTRODUCIENDO SPRING ROO

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 ROO
                                                                   2
INTRODUCIENDO SPRING ROO

Visión General




                           Introduciendo ROO
                              3
INTRODUCIENDO SPRING ROO

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 ROO
                                                                         4
INTRODUCIENDO SPRING ROO

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 ROO
                                                                  5
INTRODUCIENDO SPRING ROO

Generación activa




                           Introduciendo ROO
                              6
INTRODUCIENDO SPRING ROO

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 ROO
                                                                 7
INTRODUCIENDO SPRING ROO

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 ROO
                                                                              8
INTRODUCIENDO SPRING ROO

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.




                                                                     Introduciendo ROO
       No tienes que “decirle” que deje de hacer algo.
       No hace falta que uses el shell de ROO.
                                                                        9
INTRODUCIENDO SPRING ROO

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 ROO
                                                                         10
INTRODUCIENDO SPRING ROO

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 ROO
                                                                        11
INTRODUCIENDO SPRING ROO

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 ROO
                                                                           12
INTRODUCIENDO SPRING ROO

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 ROO
                                                                       13
INTRODUCIENDO SPRING ROO

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 ROO
                                                                   14
INTRODUCIENDO SPRING ROO

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 ROO
                                                                       15
INTRODUCIENDO SPRING ROO

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 ROO
                                                                       16
INTRODUCIENDO SPRING ROO

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




                                                                         Introduciendo ROO
       Verificar el éxito.
       Generar los fichero de eclipse para poder continuar el trabajo
                                                                            17
INTRODUCIENDO SPRING ROO

Cajón de sastre



   “security setup” configura Spring Security

   “logging setup” configura el Log4j

   “script” ejecuta un script




                                                 Introduciendo ROO
                                                    18
INTRODUCIENDO SPRING ROO

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






                                                                       Introduciendo ROO
    Puedes ejecutar el “persistence setup” en cualquier momento
       P.e.- para cambiar de proveedor de JPA.
                                                                          19
INTRODUCIENDO SPRING ROO

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 ROO
                                                                  20
Javier Onsurbe Gónzalez

javier_onsurbe@yahoo.es

Calle Telémaco, 9 5º-A




                                     Introduciendo ROO
Torreón de Ardoz (Madrid)
http://unpocodejava.wordpress.com/




                                        21

Más contenido relacionado

Similar a Presentacion Spring Roo Java Mania

Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
econtinua
 

Similar a Presentacion Spring Roo Java Mania (20)

Introducción a Spring Roo
Introducción a Spring RooIntroducción a Spring Roo
Introducción a Spring Roo
 
spring framework
spring frameworkspring framework
spring framework
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
 
Python django
Python djangoPython django
Python django
 
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
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Diapositivas de JAVA
Diapositivas de JAVADiapositivas de JAVA
Diapositivas de JAVA
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
Spring on Flash Platform
Spring on Flash PlatformSpring on Flash Platform
Spring on Flash Platform
 
Introducción a Spring framework
Introducción a Spring frameworkIntroducción a Spring framework
Introducción a Spring framework
 
Manual tecnico umasoft
Manual tecnico umasoftManual tecnico umasoft
Manual tecnico umasoft
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
spring
springspring
spring
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java
 
Clase n°1 java
Clase n°1 javaClase n°1 java
Clase n°1 java
 
Clasen1java
Clasen1javaClasen1java
Clasen1java
 
Spring orm
Spring ormSpring orm
Spring orm
 
Java
JavaJava
Java
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Presentacion Spring Roo Java Mania

  • 1. Introducción a Spring ROO. Productividad extrema en 10 minutos. Javier Onsurbe González
  • 2. INTRODUCIENDO SPRING ROO 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 ROO 2
  • 3. INTRODUCIENDO SPRING ROO Visión General Introduciendo ROO 3
  • 4. INTRODUCIENDO SPRING ROO 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 ROO 4
  • 5. INTRODUCIENDO SPRING ROO 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 ROO 5
  • 6. INTRODUCIENDO SPRING ROO Generación activa Introduciendo ROO 6
  • 7. INTRODUCIENDO SPRING ROO 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 ROO 7
  • 8. INTRODUCIENDO SPRING ROO 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 ROO 8
  • 9. INTRODUCIENDO SPRING ROO 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. Introduciendo ROO  No tienes que “decirle” que deje de hacer algo.  No hace falta que uses el shell de ROO. 9
  • 10. INTRODUCIENDO SPRING ROO 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 ROO 10
  • 11. INTRODUCIENDO SPRING ROO 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 ROO 11
  • 12. INTRODUCIENDO SPRING ROO 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 ROO 12
  • 13. INTRODUCIENDO SPRING ROO 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 ROO 13
  • 14. INTRODUCIENDO SPRING ROO 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 ROO 14
  • 15. INTRODUCIENDO SPRING ROO 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 ROO 15
  • 16. INTRODUCIENDO SPRING ROO 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 ROO 16
  • 17. INTRODUCIENDO SPRING ROO 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 Introduciendo ROO  Verificar el éxito.  Generar los fichero de eclipse para poder continuar el trabajo 17
  • 18. INTRODUCIENDO SPRING ROO Cajón de sastre  “security setup” configura Spring Security  “logging setup” configura el Log4j  “script” ejecuta un script Introduciendo ROO 18
  • 19. INTRODUCIENDO SPRING ROO 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  Introduciendo ROO Puedes ejecutar el “persistence setup” en cualquier momento  P.e.- para cambiar de proveedor de JPA. 19
  • 20. INTRODUCIENDO SPRING ROO 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 ROO 20
  • 21. Javier Onsurbe Gónzalez javier_onsurbe@yahoo.es Calle Telémaco, 9 5º-A Introduciendo ROO Torreón de Ardoz (Madrid) http://unpocodejava.wordpress.com/ 21