Ejemplo de proyecto web ABM con Spring Roo

De Dos Ideas.
Saltar a: navegación, buscar

Un proyecto de ejemplo pequeño sobre el uso de Spring Roo.

Creación del proyecto

El proyecto ejemplo es para una aplicación web básica para atender pedidos en una pizzeria. Donde se contará con la posibilidad de tomar pedidos de pizza/s y de crear nuevos tipos de pizzas. Una pizza está compuesta de una base y una o más cubiertas.

El diagrama de clases representa un modelo simplificado del dominio problema de la pizzeria.

Es un buen punto de partida para el proyecto en cuestión a fin de entregar un primer prototipo de la aplicación para el dueño del producto.

DiagramaDominioPizzeria.jpg

  • Paso 1: Crear carpeta del proyecto

mkdir pizzaDosIdeas cd pizzaDosIdeas roo

Nota: con el comando 'hint' se obtiene cual es el siguiente paso para generar el proyecto.

  • Paso 2: Crear el proyecto Java

project --topLevelPackage com.springsource.roo.pizzaDosIdeas

  • Paso 3: Configurar el ORM y la base de datos del sistema

persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

  • Paso 4: Crear las entidades, atributos y como se relacionan

entity --class ~.domain.Cubierta --testAutomatically field string --fieldName nombre --notNull --sizeMin 2

entity --class ~.domain.Base --testAutomatically field string --fieldName nombre --notNull --sizeMin 2

entity --class ~.domain.Pizza --testAutomatically field string --fieldName nombre --notNull --sizeMin 2 field number --fieldName precio --type java.lang.Float field set --fieldName coberturas --element ~.domain.Cubierta field reference --fieldName base --type ~.domain.Base

entity --class ~.domain.Pedido --testAutomatically field string --fieldName nombre --notNull --sizeMin 2 field string --fieldName direccion --sizeMax 30 field number --fieldName importe --type java.lang.Float field date --fieldName fechaEntrega --type java.util.Date field set --fieldName pizzas --element ~.domain.Pizza

  • Paso 5: Ejecutar test y, según IDE desarrollo, ejecutar tarea para estructurar proyecto. Se puede utilizar STS.

perform tests perform eclipse

  • Paso 6: Crear la capa web con los test de selenium para esa capa

controller all --package ~.web selenium test --controller ~.web.CubiertaController selenium test --controller ~.web.BaseController selenium test --controller ~.web.PizzaController selenium test --controller ~.web.PedidoController

Y ahora sí, generamos el paquete y lo desplegamos en un contenedor web:

perform package quit (salimos de roo) mvn tomcat:run (en la carpeta raiz del proyecto)

Y tenemos la aplicación corriendo en http://localhost:8080/pizzadosideas/ !!!!

Automatizar tarea con script de roo

// Spring Roo 1.0.2.RELEASE // Crear proyecto project --topLevelPackage com.springsource.roo.pizzaDosIdeas // Definir persistencia de datos persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY // Definir modelo de datos entity --class ~.domain.Cubierta --testAutomatically field string --fieldName nombre --notNull --sizeMin 2 entity --class ~.domain.Base --testAutomatically field string --fieldName nombre --notNull --sizeMin 2 entity --class ~.domain.Pizza --testAutomatically field string --fieldName nombre --notNull --sizeMin 2 field number --fieldName precio --type java.lang.Float field set --fieldName coberturas --element ~.domain.Cubierta field reference --fieldName base --type ~.domain.Base entity --class ~.domain.Pedido --testAutomatically field string --fieldName nombre --notNull --sizeMin 2 field string --fieldName direccion --sizeMax 30 field number --fieldName importe --type java.lang.Float field date --fieldName fechaEntrega --type java.util.Date field set --fieldName pizzas --element ~.domain.Pizza // Ejecutar test perform test // Definir IDE perform eclipse // Agregar capa de presentacion controller all --package ~.web selenium test --controller ~.web.CubiertaController selenium test --controller ~.web.BaseController selenium test --controller ~.web.PizzaController selenium test --controller ~.web.PedidoController // Generar paquete y terminar perform package quit

Ver tambien