Dando saltos con Spring Roo
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Dando saltos con Spring Roo

on

  • 3,278 views

Esta es la presentación que se dio de Spring Roo en la 17a reunión de la comunidad de Spring Hispano.

Esta es la presentación que se dio de Spring Roo en la 17a reunión de la comunidad de Spring Hispano.

Statistics

Views

Total Views
3,278
Views on SlideShare
2,833
Embed Views
445

Actions

Likes
0
Downloads
36
Comments
1

16 Embeds 445

http://abaddon-gtz.blogspot.com 237
http://www.springhispano.org 76
http://abaddon-gtz.blogspot.com.es 45
http://abaddon-gtz.blogspot.mx 39
http://springhispano.org 14
http://abaddon-gtz.blogspot.com.br 9
http://www.linkedin.com 7
http://abaddon-gtz.blogspot.com.ar 6
http://theoldreader.com 3
http://abaddon-gtz.blogspot.de 2
https://twitter.com 2
http://webcache.googleusercontent.com 1
http://abaddon-gtz.blogspot.fr 1
http://abaddon-gtz.blogspot.it 1
http://web.archive.org 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • muy bueno. jejjej saludos
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Llevaremos la siguiente agenda:   Introduccion Mision Descripcion de usuario
  • 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.
  • 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.
  • 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?
  • 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.
  • 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. 

Dando saltos con Spring Roo Presentation Transcript

  • 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 "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
  • 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.