viernes, 27 de junio de 2014

Grails "Groovy on Rails" para un desarrollo web fácil en Java

Grails es un framework para desarrollo fácil de aplicaciones web en Java desarrollado sobre el lenguaje Groovy. Fue adquirido por Spring en 2008 y  es conocido como "Groovy on Rails" ya que incluye un sistema creación de proyectos con scaffolding o andamiaje siguiendo la idea del framework Ruby on Rails en el que muchos otros frameworks han seguido su ejemplo como Symfony, Yii, CakePHP o Code Igniter.

En este caso, Grails permite la creación de un proyecto inicial con un andamiaje predefinido y de forma muy rápida usando tecnología POJO con Hibernate y Spring. Otra funcionalidad destacable es el potencial de métodos dinámicos para búsquedas en entindades persistentes. Incluye también el framework de Javascript jQuery para la creación de los elementos de la vista.

Instalación

Para la instalación es necesario descargar Grails y crear las variables de entorno de JAVA_HOME, GRAILS_HOME y añadirlas a la variable PATH. También es posible realizar la instalación de forma automática con herramientas como Gvmtool.

Incluir la variable de entorno JAVA_HOME.

~$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
~$ export PATH="$PATH:$JAVA_HOME/bin"

No olvidar añadir en el .bashrc del usuario las dos líneas para que quede persistente.

Descargar y descomprimir la última versión de Grails.

~$ wget http://dist.springframework.org.s3.amazonaws.com/release/GRAILS/grails-2.4.2.zip
~$ unzip grails-2.4.2.zip 

Incluir la variable de entorno GRAILS_HOME con la ruta completa a la ubicación de Grails.

~$ export GRAILS_HOME=/home/user/grails-2.4.2
~$ export PATH="$PATH:$GRAILS_HOME/bin" 

Comprobar que Grails funciona en línea de comandos

 ~$ grails -version 

Creación de un proyecto

~$ grails create-app MyFirstProject 
Acceder al shell de Grails del proyecto creado

~$ cd MyFirstProject
~$ grails grails> help 



El shell de Grails incluye funcionalidades de tabulación para autocompletado.

Crear un ejemplo de hola mundo

Desde el proyecto se puede acceder a los datos del mismo y crear los elementos MVC fácilmente con el script de Grails.

grails> create-controller hello 


Esto creará el fichero grails-app/controllers/myfirstproject/HelloController.groovy

Ejecutar la aplicación

Para ejecutar la aplicación el comando run-app lanza por defecto la aplicación en el puerto 8080.

grails> run-app 



Con el parámetro -Dserver.port se puede indicar otro puerto.

grails> run-app -Dserver.port=9090 

Para parar la aplicación se ejecuta el comando stop-app en el shell de Grails.

grails> stop-app 

Testing

Los comandos que empiezan con create-* en Grails crean automáticamente pruebas unitarias y de integridad en las ubicaciones test/unit y test/integration.

Para ejecutar las pruebas ejecutar el siguiente comando.

 grails> test-app

Generar una aplicación

Grails permite crear aplicaciones base rápidamente con la característica de scaffolding o andamiaje, generando el controlador y vistas CRUD a partir de un esqueleto predefinido.

Para ello está el comando generate-all generando un controlador y las vistas asociadas.

Primero es necesario crear una entidad llamada Artifact en Grails.

 grails> create-domain-class user


El comando crea automáticamente la clase en grails-app/domain/myfirstproject/User.groovy. Se debe editar para indicar los atributos de la entidad, por ejemplo nombre y fecha de nacimiento.

package myfirstproject

class User {
  static constraints = {}
  String name
  Date birthDate
}


Con el comando generate-all User se crea automáticamente el controlador, las pruebas de unidad y la vista de la entidad User.

~$ grails generate-all User
| Finished generation for domain class myfirstproject.User 


Por último se ejecuta la aplicación con el comando grails run-app desde la línea de comandos.

~$ grails run-app

En la url http://localhost:8080/MyFirstProject/user/ se accede a la lista de la entidad User con las vistas CRUD, i18n y el estilo por defecto de Grails.

Vista Create de User.

Vista listado con el usuario creado.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.