Spring Roo es una herramienta de
desarrollo rápido de aplicaciones (RAD), que permite el desarrollo de
aplicaciones Java EE de manera más productiva y cómoda para el
desarrollador.
Tecnologias Utilizadas.
- Spring Framework: framework de Java cuya principal caracteristicas es brindar una fabrica de objetos basado en la Inyeccion de Depedencias.
- Spring MVC: modulo del framework Spring, que implementa una arquitectura Modelo-Vista-Controlador para desarrollar una aplicación web.
- Spring Security: modulo del framework Spring, que permite gestionar completamente la seguridad de las aplicaciones Java.
- Spring Web Flow: modulo del framework Spring, que define y gestiona los flujos de paginas dentro de una aplicación web.
- Selenium: herramienta para hacer pruebas de aplicaciones web.
- Maven: herramienta de software para la gestión y construcción de proyectos Java, basado en un formato XML.
- Log4j: biblioteca desarrollada en Java que permite a los desarrolladores de software elegir la salida y el nivel de granularidad de los logs a tiempo de ejecución.
- JUnit: conjunto de bibliotecas utilizadas para hacer pruebas unitarias de aplicaciones Java y llevar un desarrollo guiado por pruebas (TDD).
- JavaServer Pages.
- Java Persistence Api (JPA): framework de java que maneja datos relacionales en aplicaciones, no perdiendo las ventajas de la orientación a objetos al interactuar con una base de datos (mapeo objeto-relacional), y permitiendo usar objetos regulares (POJOs)
- AspectJ: lenguaje de programación orientado a aspectos construido como una extensión del lenguaje Java.
Caracteristicas.
- Genera código (de forma activa y pasiva) para aplicaciones Java con Spring.
- Eliminar el trabajo tedioso centrando el desarrollo en la lógica de negocio.
- Se basa en el paradigma Convencion sobre Configuración (CoC).
- Posee un enfoque de diseño guiado por el dominio (DDD).
- Está dirigido por un modelo de entidades.
- Se centra en la logica de las entidades y elimina las capas redundantes.
- Utiliza el patron de diseño "Active Record" en oposicion al anti-patrón de diseño "Anemic Domain Model (ADM)".
- Crea un proyecto en minutos.
- Añade valor durante todo el ciclo de vida (Retroalimentación).
- Las aplicaciones siguen las mejores práticas de diseño.
- Permite auto-generar test unitarios y de integración.
- No incorpora elementos adicionales al entorno de ejecución, por lo que no penaliza la velocidad de aplicación.
- Se puede integrar con IDEs como Spring Tool Suite o Eclipse.
- Recibe instrucciones a través de una consola interactiva con auto-completado y ayuda en línea.
- Es extensible usando modulos OSGI (ficheros JAR con un conjunto de metadatos que especifican la caracteristicas del modulo).
- Se puede eliminar un proyecto en minutos.
Interfaz de Linea de Comandos (CLI)
Spring
Roo es una herramienta de Linea de Comandos (CLI) de fácil uso, que
proporciona auto-completado "Tab" de comandos y argumentos, y ayuda en
linea mediante "help" y "hint".
Arquitectura.
Roo genera código que se puede dividir en dos categorías:
Roo genera código que se puede dividir en dos categorías:
- Código gestionado por Spring Roo => Ficheros AspectJ ITD (.aj)
- Código gestionado por el programador => Fuentes Java.
En tiempo de compilación, el código de los ficheros .aj, es tejido en el código de los fuentes Java.
Ejemplo: Aplicacion de Inventario.
Se tiene una clase "Producto" con sus respectivos atributos: numero identificador (id_producto), nombre, descripcion y precio.
// Se Crea el Proyecto
roo> project --topLevelPackage com.curso.inventario
// Se Define la herramienta de persistencia y la base de datos a utilizar
roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
// Se Crea la entidad "Producto"
roo> entity jpa --class ~.domain.Producto --testAutomatically
// Se crean los antributos de la entidad "Producto" con sus respectivas restricciones
roo> field number --fieldName id_Producto --type int --notnull
roo> field string --fieldName nombre --notNull
roo> field string --fieldName descripcion
roo> field number --fieldName precio --type double
// Se genera la capa de presentacion
roo> web mvc setup
roo> web mvc all --package ~.web
// Se ejecutan las pruebas respectivas
roo> perform tests
// Se empaqueta el proyecto
roo> perform package
// Se estructura el proyecto para ser usado y modificado en eclipse
roo> perform eclipse
// Se sale de Roo
roo> exit
// Se despliega la aplicación en un contenedor web
C:\Users\Arak\Roo\Inventario> mvn tomcat:run
A traves de estos simples pasos, se genero la siguiente aplicación web:
Desarrollo en MQ Arriendos.
Se propone desarrollar la aplicación del "Sistema de Inventario" para MQ Arriendo utilizando Spring Roo, donde cada tarea asociada a un requerimiento, tendra un script con todos los comandos utilizados en el desarrollo de la aplicacion de esa tarea. Luego estos script se uniran para formar solo uno, y por ende, solo una aplicación que integre todas las tareas y finalmente todos los requerimientos planteados por el Product Owner.
Fuente y más información:
No hay comentarios:
Publicar un comentario