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

  1. Instal·lar SDKMAN!:
    curl -s "https://get.sdkman.io" | bash
    source "$HOME/.sdkman/bin/sdkman-init.sh"
    
  2. Instal·lar Grails:
    sdk install grails
    

Verificar la Instal·lació

Després d'instal·lar Grails, pots verificar la instal·lació executant:

grails -version

Creació d'una Aplicació Grails

Pas 1: Crear una Nova Aplicació

Per crear una nova aplicació Grails, utilitza el següent comandament:

grails create-app nom-de-la-teva-aplicacio

Pas 2: Navegar a la Carpeta de l'Aplicació

cd nom-de-la-teva-aplicacio

Pas 3: Executar l'Aplicació

grails run-app

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

  1. Crear l'aplicació:

    grails create-app biblioteca
    cd biblioteca
    
  2. 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
        }
    }
    
  3. 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]
            }
        }
    }
    
  4. 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>
      
  5. 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.

© Copyright 2024. Tots els drets reservats