Grails es un marco de aplicación web de código abierto que utiliza el lenguaje de programación Apache Groovy (que a su vez se basa en la plataforma Java ). Se pretende que sea un marco de alta productividad siguiendo el paradigma de " codificación por convención ", proporcionando un entorno de desarrollo independiente y ocultando gran parte de los detalles de configuración al desarrollador. [ cita requerida ]
Desarrollador (es) | Graeme Rocher |
---|---|
Versión inicial | Octubre de 2005 |
Lanzamiento estable | 4.0.10 [1] / 8 de abril de 2021 |
Repositorio | Repositorio de Grails |
Escrito en | Groovy |
Sistema operativo | Multiplataforma |
Plataforma | Multiplataforma ( JVM ) |
Tipo | Marco de aplicación web |
Licencia | Licencia Apache 2.0 |
Sitio web | griales |
Grails se conocía anteriormente como "Groovy on Rails"; en marzo de 2006, ese nombre se eliminó en respuesta a una solicitud de David Heinemeier Hansson , fundador del marco Ruby on Rails . [2] El trabajo comenzó en julio de 2005, con la versión 0.1 el 29 de marzo de 2006 y la versión 1.0 anunciada el 18 de febrero de 2008.
Descripción general
Grails se desarrolló para abordar una serie de objetivos:
- Proporcionar un marco web para la plataforma Java.
- Reutilice las tecnologías Java existentes, como Hibernate y Spring, en una única interfaz.
- Ofrezca un marco de desarrollo coherente.
- Ofrezca documentación para partes clave del marco:
- El marco de persistencia .
- Plantillas que utilizan GSP (Groovy Server Pages).
- Bibliotecas de etiquetas dinámicas para crear componentes de páginas web.
- Soporte Ajax personalizable y extensible .
- Proporcione aplicaciones de muestra que demuestren el marco.
- Proporcionar un modo de desarrollo completo, incluido un servidor web y recarga automática de recursos.
Alta productividad
Grails tiene tres propiedades que lo diferencian de los marcos web tradicionales de Java:
- Sin configuración XML
- Entorno de desarrollo listo para usar
- Funcionalidad disponible a través de mixins
Sin configuración XML
La creación de aplicaciones web en Java implica tradicionalmente la configuración de entornos y marcos al inicio y durante el desarrollo. Esta configuración se externaliza muy a menudo en archivos XML para facilitar la configuración y evitar incrustar la configuración en el código de la aplicación.
Inicialmente, XML fue bienvenido ya que proporcionó mayor consistencia para configurar aplicaciones. Sin embargo, en los últimos años, se ha hecho evidente que, aunque XML es excelente para la configuración, puede resultar tedioso configurar un entorno. Esto puede reducir la productividad a medida que los desarrolladores dedican tiempo a comprender y mantener la configuración del marco a medida que crece la aplicación. Agregar o cambiar funcionalidad en aplicaciones que usan configuración XML agrega un paso adicional al proceso de cambio, lo que ralentiza la productividad y puede disminuir la agilidad de todo el proceso.
Grails elimina la necesidad de agregar configuración en archivos XML. En cambio, el marco utiliza un conjunto de reglas o convenciones mientras inspecciona el código de las aplicaciones basadas en Grails. Por ejemplo, un nombre de clase que termina con Controller
(por ejemplo BookController
) se considera un controlador web.
Entorno de desarrollo listo para usar
Cuando se utilizan los kits de herramientas web tradicionales de Java, los desarrolladores deben ensamblar las unidades de desarrollo, lo que puede resultar tedioso. Grails proporciona un entorno de desarrollo que incluye un servidor web para que los desarrolladores comiencen de inmediato. Todas las bibliotecas necesarias forman parte de la distribución de Grails, y Grails prepara el entorno web Java para su implementación automáticamente.
Funcionalidad disponible a través de mixins
Grails presenta métodos dinámicos en varias clases a través de mixins. Un mixin es un método que se agrega a una clase dinámicamente, como si la funcionalidad se hubiera compilado en el programa.
Estos métodos dinámicos permiten a los desarrolladores realizar operaciones sin tener que implementar interfaces o extender clases base. Grails proporciona métodos dinámicos basados en el tipo de clase. Por ejemplo, las clases de dominio tienen métodos para automatizar operaciones de persistencia como guardar, eliminar y buscar
Marco web
El marco web de Grails se ha diseñado de acuerdo con el paradigma MVC .
Controladores
Grails usa controladores para implementar el comportamiento de las páginas web. A continuación se muestra un ejemplo de un controlador:
class BookController { def list () { [ libros: Libro . lista () ] } }
El controlador anterior tiene una list
acción que devuelve un modelo que contiene todos los libros de la base de datos. Para crear este controlador grails
se utiliza el comando, como se muestra a continuación:
libro de creación-controlador de grails
Este comando crea una clase en el grails-app/controller
directorio del proyecto Grails. Crear la clase de controlador es suficiente para que Grails la reconozca. La list
acción se asigna al http://localhost:8080/book/list
modo de desarrollo.
Puntos de vista
Grails admite JSP y GSP. El siguiente ejemplo muestra una vista escrita en GSP que enumera los libros en el modelo preparado por el controlador anterior:
Nuestros libros
in = "$ {books}" > $ {it.title} ($ { it.author.name})