Introducció a Grails
Grails és un framework de desenvolupament web que es basa en el llenguatge de programació Groovy. Està dissenyat per ser altament productiu, permetent als desenvolupadors crear aplicacions web robustes i escalables amb menys codi i en menys temps. Grails segueix el patró de disseny MVC (Model-View-Controller) i s'integra perfectament amb l'ecosistema Java.
Característiques Clau de Grails
- Productivitat: Grails proporciona una gran quantitat de funcionalitats "out-of-the-box" que redueixen el temps de desenvolupament.
- Convencions sobre Configuració: Utilitza convencions per simplificar la configuració i la codificació.
- Integració amb Java: Com que Grails es basa en Groovy, es pot integrar fàcilment amb biblioteques i frameworks Java.
- ORM (Object-Relational Mapping): Utilitza GORM (Grails Object Relational Mapping) per facilitar la interacció amb bases de dades.
- Plugins: Una gran varietat de plugins disponibles per estendre les funcionalitats de Grails.
Configuració de l'Entorn Grails
Requisits Previs
- Java Development Kit (JDK): Grails requereix JDK 8 o superior.
- SDKMAN!: Una eina útil per gestionar múltiples versions de Grails i altres SDKs.
Instal·lació de Grails
- Instal·lar SDKMAN!:
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh"
- Instal·lar Grails:
sdk install grails
Verificar la Instal·lació
Després d'instal·lar Grails, pots verificar la instal·lació executant:
Creació d'una Aplicació Grails
Pas 1: Crear una Nova Aplicació
Per crear una nova aplicació Grails, utilitza el següent comandament:
Pas 2: Navegar a la Carpeta de l'Aplicació
Pas 3: Executar l'Aplicació
Això iniciarà un servidor web integrat i podràs accedir a l'aplicació a través de http://localhost:8080
.
Estructura d'una Aplicació Grails
Una aplicació Grails té una estructura de directoris específica. A continuació es mostra una descripció dels directoris més importants:
Directori | Descripció |
---|---|
grails-app |
Conté el codi de l'aplicació, incloent-hi models, controladors, vistes, etc. |
src |
Conté codi Groovy i Java que no segueix el patró MVC. |
test |
Conté les proves de l'aplicació. |
build.gradle |
Fitxer de configuració de Gradle per gestionar les dependències. |
Desenvolupament amb Grails
Models
Els models en Grails es defineixen utilitzant GORM. A continuació es mostra un exemple de model:
package com.exemple class Persona { String nom String cognom Date dataNaixement static constraints = { nom blank: false cognom blank: false dataNaixement nullable: true } }
Controladors
Els controladors gestionen les peticions HTTP i interactuen amb els models. Exemple de controlador:
package com.exemple class PersonaController { def index() { respond Persona.list() } def show(Long id) { respond Persona.get(id) } def create() { respond new Persona(params) } def save(Persona persona) { if (persona.save(flush: true)) { redirect action: "index" } else { render view: "create", model: [persona: persona] } } }
Vistes
Les vistes es defineixen utilitzant GSP (Groovy Server Pages). Exemple de vista index.gsp
:
<!DOCTYPE html> <html> <head> <meta name="layout" content="main"/> <title>Persones</title> </head> <body> <h1>Llista de Persones</h1> <ul> <g:each in="${personaList}" var="persona"> <li>${persona.nom} ${persona.cognom}</li> </g:each> </ul> </body> </html>
Exercici Pràctic
Objectiu
Crear una aplicació Grails que gestioni una llista de llibres.
Passos
-
Crear l'aplicació:
grails create-app biblioteca cd biblioteca
-
Definir el model
Llibre
:package biblioteca class Llibre { String titol String autor Date dataPublicacio static constraints = { titol blank: false autor blank: false dataPublicacio nullable: true } }
-
Crear el controlador
LlibreController
:package biblioteca class LlibreController { def index() { respond Llibre.list() } def show(Long id) { respond Llibre.get(id) } def create() { respond new Llibre(params) } def save(Llibre llibre) { if (llibre.save(flush: true)) { redirect action: "index" } else { render view: "create", model: [llibre: llibre] } } }
-
Crear les vistes:
index.gsp
:<!DOCTYPE html> <html> <head> <meta name="layout" content="main"/> <title>Llibres</title> </head> <body> <h1>Llista de Llibres</h1> <ul> <g:each in="${llibreList}" var="llibre"> <li>${llibre.titol} per ${llibre.autor}</li> </g:each> </ul> </body> </html>
-
Executar l'aplicació:
grails run-app
Conclusió
En aquesta secció, hem après què és Grails, com configurar l'entorn, crear una aplicació bàsica i entendre l'estructura d'una aplicació Grails. També hem vist com definir models, controladors i vistes, i hem realitzat un exercici pràctic per consolidar els coneixements adquirits. Grails és una eina poderosa que pot augmentar significativament la productivitat en el desenvolupament d'aplicacions web.
Curs de Programació Groovy
Mòdul 1: Introducció a Groovy
Mòdul 2: Sintaxi i Característiques del Llenguatge Groovy
Mòdul 3: Programació Orientada a Objectes en Groovy
Mòdul 4: Característiques Avançades de Groovy
Mòdul 5: Groovy en la Pràctica
- Entrada/Sortida de Fitxers
- Treballant amb XML i JSON
- Accés a Bases de Dades
- Desenvolupament Web amb Groovy
Mòdul 6: Proves i Depuració
Mòdul 7: Ecosistema i Eines de Groovy
- Eina de Construcció Gradle
- Framework de Proves Spock
- Framework Grails
- Altres Llibreries i Eines de Groovy
Mòdul 8: Millors Pràctiques i Temes Avançats
- Estil de Codi i Convencions
- Optimització del Rendiment
- Consideracions de Seguretat
- Concurrència en Groovy