SlideShare a Scribd company logo
SPRING ROO: MEJORA TU PRODUCTIVIDAD DANDO SALTOS CON EL CANGURO Rafael Antonio Gutiérrez Turullols @abaddon_gtz [email_address] http://abaddon-gtz.blogspot.com Septiembre 4, 2010, México, D.F
Demo de Introducción Introducción Demos Desarrollo de Add-ons Demos Proyecto SpringHispano Add-ons
 
ES  Herramienta RAD para Java (basada en texto) ES  extensible ES  para su uso es en tiempo de desarrollo ES  un generador de código NO ES  un plugin de algún IDE NO ES  un software de administración de proyectos NO ES  una herramienta para construir proyectos
AspectJ Framework para programar orientado a aspectos (AOP). Spring Roo usa los Inter-Type Declaration (ITD) Genera *_Roo_*.aj Spring Otros frameworks como: Spring Security y Spring Web Flow. Aspectos de Spring: @Configurable y manejo de transacciones Escaneo de componentes marcados con anotaciones Spring.
Alta productividad Fácil de aprender y usar TAB, hint y help Herramientas estándar Java JPA, Maven, JSP, Junit, Spring, … Sin compromisos Fácil de remover
 
Generador Pasivo Reacciona a instrucciones del usuario Generador Activo Reacciona a cambios en el código Es un generador de código hibrido PASIVO = Shell y comandos Hace el cambio y nada mas (.xml y .java) ACTIVO =Se activa sobre los .java marcados con @Roo* Monitorea los cambios en el .java y actualiza .aj, .jsp
 
Típica Aplicación Web basada en Spring MVC Base de datos Persistencia vía JPA Pruebas unitarias con JUnit Maven para construir el proyecto Spring para la inyección de dependencias. Google Web Toolkit, desde 1.1.0.M1 Add-on de Flex, desde la 1.1.0.M2 (se instala aparte) Capas: Entidad (dominio) Web Servicios y DAO (no se generan pero se pueden incluir)
 
 
Todos los comandos de Spring Roo son add-ons. Son los add-ons Base. Comando para crear un proyecto tipo "add-on": project --topLevelPackage zzz.xxx.yyyy --template ROO_ADDON_SIMPLE   Desde la 1.1.0.M2 add-ons para crear add-ons: addon create advanced addon create simple
 
 
 
El método que atiende la ejecución del comando puede: Tirar cualquier tipo de Exception para cancelar la ejecución del comando y revertir (rollback) los cambios.   Usar el Logging del JDK o regresar objetos que se imprimiran en la consola.
 
Roo tiene los siguientes servicios (entre otros) a nuestra disposicion: org.sf.roo.process.manager.FileManager crear directorios/archivos, consultar los detalles de archivos, leer InputStreams. org.sf.roo.project.PathResolver información sobre los paths, resolver paths org.sf.roo.project.ProjectOperations   acciones sobre el pom.xml org.sf.roo.metadata.MetadataService org.sf.roo.classpath.operations.ClasspathOperations
Comandos importantes: Instalar un addon: felix shell start file://<ruta> Ver los add-ons instalados: osgi ps desinstalr un addon: osgi uninstall --bundleSymbolicName zzz.xxx.yyy actualizar un addon: osgi update --bundleSymbolicName zzz.xxx.yyy 
 
Refactor->Push-in con Eclipse Buscar y reemplazar las anotaciones e imports en los Java Expresion regular = “.*Roo.*” Reemplazar con “” Quitar las dependencias en el pom.xml
 
Con la comunidad y para la comunidad desarrollar add-ons de Spring Roo que nos ayuden a realizar nuestra labor diaria en la escuela y/o trabajo de manera mas rápida y sencilla
Test Data Builder Addon. Auditable Fields Addon. Copy Fields Addon. SDL/Swing Addon. Jersey Addon.
Pagina: http://www.springsource.org/roo Foros:   http://forum.springsource.org/forumdisplay.php?f=67 Twitter: @SpringRoo, @benalexu, @schmidtstefan Jira: http://jira.springframework.org/browse/ROO  Repositorio Git:  git clone git://git.springsource.org/roo/roo.git Libro (próximamente): Roo in Action de Manning, @RooInAction Mi Blog: http://abaddon-gtz.blogspot.com (Etiqueta 'Spring Roo')  SpringHispano Addons:  http://code.google.com/p/springhispano-addons/
 

More Related Content

Similar to Dando saltos con Spring Roo

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
Paradigma Digital
 
Welcome to Django
Welcome to DjangoWelcome to Django
Welcome to Django
Erufenix Sanjuro Tadokoro
 
Presentación Multimedia - Django
Presentación Multimedia - DjangoPresentación Multimedia - Django
Presentación Multimedia - Django
Viviana Trujillo
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
Frank Jorge
 
Spring
SpringSpring
R shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-defR shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-def
Pedro Concejero
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
Gustavo Salazar Escobar
 
Iniciación android
Iniciación androidIniciación android
Iniciación android
David Luque Quintana
 
Introducción a Spring Roo
Introducción a Spring RooIntroducción a Spring Roo
Introducción a Spring Roo
Paulo Clavijo
 
Construcción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARConstrucción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEAR
Marcos Martinez
 
Como programar un plc
Como programar un plcComo programar un plc
Como programar un plc
Jhon Edison Quintero Santa
 
Open Source Tools for Java Projects
Open Source Tools for Java ProjectsOpen Source Tools for Java Projects
Open Source Tools for Java Projects
Jose Gutierrez
 
ENTORNOS DE PROGRMACION.pdf
ENTORNOS DE PROGRMACION.pdfENTORNOS DE PROGRMACION.pdf
ENTORNOS DE PROGRMACION.pdf
FERNANDO926949
 
Instrucciones y estructuras
Instrucciones y estructurasInstrucciones y estructuras
Instrucciones y estructuras
Fernand Bernowly
 
Atix20
Atix20Atix20
Atix20
atixlibre
 
4 Jhs J Developer Adf
4  Jhs J Developer Adf4  Jhs J Developer Adf
4 Jhs J Developer Adf
Pedro Gallardo
 
02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix
Roger CARHUATOCTO
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5
Eudris Cabrera
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Juan Carlos Gonzales Vitte.
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
jcarazo
 

Similar to Dando saltos con Spring Roo (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
 
Welcome to Django
Welcome to DjangoWelcome to Django
Welcome to Django
 
Presentación Multimedia - Django
Presentación Multimedia - DjangoPresentación Multimedia - Django
Presentación Multimedia - Django
 
Curso Android Tema 2
Curso Android Tema 2Curso Android Tema 2
Curso Android Tema 2
 
Spring
SpringSpring
Spring
 
R shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-defR shiny-grupo-usuarios-r-def
R shiny-grupo-usuarios-r-def
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
 
Iniciación android
Iniciación androidIniciación android
Iniciación android
 
Introducción a Spring Roo
Introducción a Spring RooIntroducción a Spring Roo
Introducción a Spring Roo
 
Construcción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARConstrucción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEAR
 
Como programar un plc
Como programar un plcComo programar un plc
Como programar un plc
 
Open Source Tools for Java Projects
Open Source Tools for Java ProjectsOpen Source Tools for Java Projects
Open Source Tools for Java Projects
 
ENTORNOS DE PROGRMACION.pdf
ENTORNOS DE PROGRMACION.pdfENTORNOS DE PROGRMACION.pdf
ENTORNOS DE PROGRMACION.pdf
 
Instrucciones y estructuras
Instrucciones y estructurasInstrucciones y estructuras
Instrucciones y estructuras
 
Atix20
Atix20Atix20
Atix20
 
4 Jhs J Developer Adf
4  Jhs J Developer Adf4  Jhs J Developer Adf
4 Jhs J Developer Adf
 
02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go KPy Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 

More from Rafael Antonio Gutiérrez Turullols

Java Collection Framework: lo que todo Java Dev debe conocer
Java Collection Framework: lo que todo Java Dev debe conocerJava Collection Framework: lo que todo Java Dev debe conocer
Java Collection Framework: lo que todo Java Dev debe conocer
Rafael Antonio Gutiérrez Turullols
 
De Threads a CompletableFutures
De Threads a CompletableFuturesDe Threads a CompletableFutures
De Threads a CompletableFutures
Rafael Antonio Gutiérrez Turullols
 
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Rafael Antonio Gutiérrez Turullols
 
Una gota de elixir 2017
Una gota de elixir   2017Una gota de elixir   2017
Una gota de elixir 2017
Rafael Antonio Gutiérrez Turullols
 
Elixir concurrency 101
Elixir concurrency 101Elixir concurrency 101
Elixir concurrency 101
Rafael Antonio Gutiérrez Turullols
 
Test doubles and EasyMock
Test doubles and EasyMockTest doubles and EasyMock
Test doubles and EasyMock
Rafael Antonio Gutiérrez Turullols
 
Capa de persistencia con ecto
Capa de persistencia con ectoCapa de persistencia con ecto
Capa de persistencia con ecto
Rafael Antonio Gutiérrez Turullols
 

More from Rafael Antonio Gutiérrez Turullols (7)

Java Collection Framework: lo que todo Java Dev debe conocer
Java Collection Framework: lo que todo Java Dev debe conocerJava Collection Framework: lo que todo Java Dev debe conocer
Java Collection Framework: lo que todo Java Dev debe conocer
 
De Threads a CompletableFutures
De Threads a CompletableFuturesDe Threads a CompletableFutures
De Threads a CompletableFutures
 
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
 
Una gota de elixir 2017
Una gota de elixir   2017Una gota de elixir   2017
Una gota de elixir 2017
 
Elixir concurrency 101
Elixir concurrency 101Elixir concurrency 101
Elixir concurrency 101
 
Test doubles and EasyMock
Test doubles and EasyMockTest doubles and EasyMock
Test doubles and EasyMock
 
Capa de persistencia con ecto
Capa de persistencia con ectoCapa de persistencia con ecto
Capa de persistencia con ecto
 

Recently uploaded

Conceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagaciónConceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagación
edgarcalle8
 
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptxDiapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
GnesisOrtegaDeLen
 
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
bellomiguelangel68
 
11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf
PanchoChangue
 
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdfBIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
sunwndniel
 
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdfInforme de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
KEVINYOICIAQUINOSORI
 
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
241578066
 
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docxSEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
Eddy Nathaly Jaimes Villamizar
 
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
sunwndniel
 
Catalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdfCatalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdf
walter729637
 
aplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geograficoaplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geografico
cyberquiximies
 
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
MenaOlortinYherlyEli
 
DN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en PerúDN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en Perú
estudios22
 
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdfInforme_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Rubén Cortes Zavala
 
Transporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdfTransporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdf
milagrosAlbanPacherr
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
Henry W. Zavala
 
bomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexionesbomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexiones
JessAdrinGonzlezCade
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
Katia Reyes
 
Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
gregory760891
 
_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
correodetareas
 

Recently uploaded (20)

Conceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagaciónConceptos y definiciones de Antenas y propagación
Conceptos y definiciones de Antenas y propagación
 
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptxDiapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
Diapositiva sobre Tecnologia de la Información y Telecomunicaciones.pptx
 
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
2 FIBRA OPTICA COMO MEDIO DE RED DE ACCESO.pptx
 
11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf11. Legislación Aplicada a la Informática.pdf
11. Legislación Aplicada a la Informática.pdf
 
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdfBIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
BIOSENSORES BASADOS EN NANOTECNOLOGÍA.pdf
 
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdfInforme de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
Informe de electroforesis del ADN MEDIANTE EL MinION Mk1C.pdf
 
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
"El uso de las TIC en la vida cotidiana". SantanaMartinez_Alejandra
 
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docxSEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
SEGUNDA GENERACIÓN xxxxxxxxxxxxxxxx.docx
 
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
Reconocimiento del Secuenciador de nanoporos (Nanopore sequencing) MinIon Mk1...
 
Catalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdfCatalogo-Voxtech- accesorios radios RF.pdf
Catalogo-Voxtech- accesorios radios RF.pdf
 
aplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geograficoaplicaciones de sistema de informacion geografico
aplicaciones de sistema de informacion geografico
 
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
TESisssssssss de yhnnjuuhjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...
 
DN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en PerúDN Consultores | Una mirada al mercado de fibra en Perú
DN Consultores | Una mirada al mercado de fibra en Perú
 
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdfInforme_mc_bombas_Warman_001-WEIR vulco.pdf
Informe_mc_bombas_Warman_001-WEIR vulco.pdf
 
Transporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdfTransporte a través del tiempo en el perú.pdf
Transporte a través del tiempo en el perú.pdf
 
Evolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TICEvolución, características, aplicación, ventajas y desventajas de las TIC
Evolución, características, aplicación, ventajas y desventajas de las TIC
 
bomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexionesbomba-koomey -Todo sobre sus istema y conexiones
bomba-koomey -Todo sobre sus istema y conexiones
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 
Generaciones de Computadoras .
Generaciones de Computadoras                 .Generaciones de Computadoras                 .
Generaciones de Computadoras .
 
_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf_Manejo de Riesgos en el Laboratorio.pdf
_Manejo de Riesgos en el Laboratorio.pdf
 

Dando saltos con Spring Roo

  • 1. SPRING ROO: MEJORA TU PRODUCTIVIDAD DANDO SALTOS CON EL CANGURO Rafael Antonio Gutiérrez Turullols @abaddon_gtz [email_address] http://abaddon-gtz.blogspot.com Septiembre 4, 2010, México, D.F
  • 2. Demo de Introducción Introducción Demos Desarrollo de Add-ons Demos Proyecto SpringHispano Add-ons
  • 3.  
  • 4. ES Herramienta RAD para Java (basada en texto) ES extensible ES para su uso es en tiempo de desarrollo ES un generador de código NO ES un plugin de algún IDE NO ES un software de administración de proyectos NO ES una herramienta para construir proyectos
  • 5. AspectJ Framework para programar orientado a aspectos (AOP). Spring Roo usa los Inter-Type Declaration (ITD) Genera *_Roo_*.aj Spring Otros frameworks como: Spring Security y Spring Web Flow. Aspectos de Spring: @Configurable y manejo de transacciones Escaneo de componentes marcados con anotaciones Spring.
  • 6. Alta productividad Fácil de aprender y usar TAB, hint y help Herramientas estándar Java JPA, Maven, JSP, Junit, Spring, … Sin compromisos Fácil de remover
  • 7.  
  • 8. Generador Pasivo Reacciona a instrucciones del usuario Generador Activo Reacciona a cambios en el código Es un generador de código hibrido PASIVO = Shell y comandos Hace el cambio y nada mas (.xml y .java) ACTIVO =Se activa sobre los .java marcados con @Roo* Monitorea los cambios en el .java y actualiza .aj, .jsp
  • 9.  
  • 10. Típica Aplicación Web basada en Spring MVC Base de datos Persistencia vía JPA Pruebas unitarias con JUnit Maven para construir el proyecto Spring para la inyección de dependencias. Google Web Toolkit, desde 1.1.0.M1 Add-on de Flex, desde la 1.1.0.M2 (se instala aparte) Capas: Entidad (dominio) Web Servicios y DAO (no se generan pero se pueden incluir)
  • 11.  
  • 12.  
  • 13. Todos los comandos de Spring Roo son add-ons. Son los add-ons Base. Comando para crear un proyecto tipo &quot;add-on&quot;: project --topLevelPackage zzz.xxx.yyyy --template ROO_ADDON_SIMPLE   Desde la 1.1.0.M2 add-ons para crear add-ons: addon create advanced addon create simple
  • 14.  
  • 15.  
  • 16.  
  • 17. El método que atiende la ejecución del comando puede: Tirar cualquier tipo de Exception para cancelar la ejecución del comando y revertir (rollback) los cambios.   Usar el Logging del JDK o regresar objetos que se imprimiran en la consola.
  • 18.  
  • 19. Roo tiene los siguientes servicios (entre otros) a nuestra disposicion: org.sf.roo.process.manager.FileManager crear directorios/archivos, consultar los detalles de archivos, leer InputStreams. org.sf.roo.project.PathResolver información sobre los paths, resolver paths org.sf.roo.project.ProjectOperations   acciones sobre el pom.xml org.sf.roo.metadata.MetadataService org.sf.roo.classpath.operations.ClasspathOperations
  • 20. Comandos importantes: Instalar un addon: felix shell start file://<ruta> Ver los add-ons instalados: osgi ps desinstalr un addon: osgi uninstall --bundleSymbolicName zzz.xxx.yyy actualizar un addon: osgi update --bundleSymbolicName zzz.xxx.yyy 
  • 21.  
  • 22. Refactor->Push-in con Eclipse Buscar y reemplazar las anotaciones e imports en los Java Expresion regular = “.*Roo.*” Reemplazar con “” Quitar las dependencias en el pom.xml
  • 23.  
  • 24. Con la comunidad y para la comunidad desarrollar add-ons de Spring Roo que nos ayuden a realizar nuestra labor diaria en la escuela y/o trabajo de manera mas rápida y sencilla
  • 25. Test Data Builder Addon. Auditable Fields Addon. Copy Fields Addon. SDL/Swing Addon. Jersey Addon.
  • 26. Pagina: http://www.springsource.org/roo Foros:   http://forum.springsource.org/forumdisplay.php?f=67 Twitter: @SpringRoo, @benalexu, @schmidtstefan Jira: http://jira.springframework.org/browse/ROO  Repositorio Git: git clone git://git.springsource.org/roo/roo.git Libro (próximamente): Roo in Action de Manning, @RooInAction Mi Blog: http://abaddon-gtz.blogspot.com (Etiqueta 'Spring Roo')  SpringHispano Addons: http://code.google.com/p/springhispano-addons/
  • 27.  

Editor's Notes

  1. Llevaremos la siguiente agenda:   Introduccion Mision Descripcion de usuario
  2. Es una herramienta RAD para Java basada en texto via un shell. RAD es el acrónimo para Rapid Application Development, y es un tipo de metodología de desarrollo que usa un mínimo de planeación y diseño del software para favorecer un rápido desarrollo del mismo construyendo prototipos. Es extesible, tiene una arquitectura basada en add-ons con los cuales podemos extender la funcionalidad. Mas adelante veremos un pequeño demo de como trabajan los addons. Su uso es en tiempo de desarrollo no en tiempo de ejecucion por lo mismo no agrega carga en runtime a nuestra aplicacion. No agrega JARs extra en el classpath de la aplicacion ni en el empaquetado. Usa anotaciones, pero estas no son compiladas a los archivos .class Es un generador de codigo que aprovecha las mejores caracteristicas de los generadores de codigo activos y pasivos.
  3. AspectJ es un poderoso y muy maduro framework para programar orientado a Aspectos (AOP). Spring desde hace algunos años tiene gran soporte para AspectJ. Spring tiene proyectos que en cierta medida ofrecen soporte a AspectJ o dependen de AspectJ para funcionar. Ejemplos: Spring Security, Spring Insight, SpringSource tc Server, SpringSource dm Server, Spring Enterprise y Spring Roo. Roo usa las Inter-Type Declaration (ITD) de AspectJ.  Las ITD de AspectJ permiten alterar la estructura estática de clases, interfaces, y aspectos en el sistema. De esta forma, las ITD permiten a Roo generar código de  una clase (como métodos, atributos, etc.) en una archivo de código distinto al .java con el cual estamos trabajando. Asi, Roo administra el contenido y ciclo de vida de estos archivos de manera independiente a los .java con los que trabajamos. Estos ITD generados por Roo son los *_Roo_*.aj. Uno no debe editar estos archivos ya que son administrados por Roo. Todas las aplicaciones en Roo, obviamente, usan Spring. Pueden llegar librerías como: Spring Security, Spring Web Flow, entre otras. Toda la inyección de dependencias es vía Spring. Usan aspectos de Spring (con AspectJ) para asegurar la inyección de dependencias de aquellos componentes marcados con @Configurable y ademas el manejo de las transacciones. Usan escaneo de componentes basados en las anotaciones de Spring para la debida creacion e injeccion de dependencias.
  4. Esta es una vision general de como esta implementado Spring Roo. La parte de abajo es nuestro proyecto el cual consiste de archivos .java, .jsp, .properties, xml de configuracion, etc. En la parte de arriba podemos ver la infraestructura de Roo. Que como se puede observar mucho de esa infraestructura esta constituida por los Add-ons. Esta parte realiza la tarea de monitorear los cambios en el proyecto o cambiar archivos del mismo. Roo se puede usar a traves de una consola (shell) o el Spring Tool Suite. El Spring Tool Suite es el IDE que ha desarrollado Spring Source. Hay anotaciones que nos da Roo para usar en el proyecto. Todas las anotaciones empiezan en su nombre con @Roo. Estas anotaciones no se quedan en nuestro componente  .class, lo que no agrega carga en runtime a nuestro proyecto (por eso la retencion de solo codigo). ¿QUE TIPOS DE RETENCION HAY?
  5. Roo se enfoca en crear aplicaciones empresariales creadas en Java. Estas aplicaciones, actualmente en esta versión de Roo, tienen generalmente una base de datos, persistencia vía JPA, pruebas unitarias con JUnit, el proyecto se construye con Maven, y, obviamente, Spring para la inyección de dependencias. En la parte web se tiene Spring MVC y Google Web Toolkit. Pero no todas las aplicaciones tiene que ser Web. Roo no te impone restricciones para crear otro tipo de aplicaciones. Roo podría ayudarnos a generar la persistencia y nosotros extender la aplicación para hacer otro tipo de cosas. También podríamos crear addons a la medida para generar otro tipo de componentes. Es muy común ver capas de DAO, servicios, dominio, controllers en la mayoría de las aplicaciones empresariales java. Roo no genera capas innecesariamente. En una aplicación típica de Roo, se tiene una capa de entidades (o de dominio) y una capa Web. Una capa de servicios se agrega solo si la aplicacion lo requiere y en lo que respecta a la capa de DAO es muy raro que se agrege una.
  6. FileManager = permite a los add-ons modificar archivos PathResolver = pertime a los addons resolver paths hacia recursos del proyecto ProjectOperations = permite a los add-ons realizar operaciones sobre el pom.xml como: agregar o quitar dependencias, propiedaes, plugins, repositorios, etc. StaticFieldConverter = agrega o remueve clases que proveen campos estaticos.