Introducción a Spring ROO.
Productividad extrema en 10 minutos.
Javier Onsurbe González
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
3
Visión GeneralINTRODUCIENDO SPRING ROO
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
6
Generación activaINTRODUCIENDO SPRING ROO
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
12
Testeo con JUnit
“test integration” Test de integración de JUnitCaracterí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 demandaRaramente se usa directamente, se crea si un test lo requiere
INTRODUCIENDO SPRING ROO
Intr
oduc
iend
o R
OO
13
Buscadores dinamicos
Te evitan de tener que escribir búsquedas JPA QLROO 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
Intr
oduc
iend
o R
OO
14
Spring MVC
“controller scaffold”, un controlador automáticoControlador “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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
18
Cajón de sastre
“security setup” configura Spring Security
“logging setup” configura el Log4j
“script” ejecuta un script
INTRODUCIENDO SPRING ROO
Intr
oduc
iend
o R
OO
19
Persistencia
“persistence setup” Usa “--provider” para seleccionar Hibernate, OpenJpa o
EclipseLinkUsa “--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
Intr
oduc
iend
o R
OO
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
Intr
oduc
iend
o R
OO
21
Javier Onsurbe Gónzalez [email protected]
Calle Telémaco, 9 5º-ATorreón de Ardoz (Madrid)http://unpocodejava.wordpress.com/