Le Tutoriel de Spring Boot et Groovy

View more Tutorials:

1- Qu'est-ce que Groovy ?

Apache Groovy est un langage de programmation orienté objet (Object-oriented programming language) destiné la plate-forme Java. C'est un langage dynamique (dynamic language) avec des fonctionnalités similaires à Python, Ruby, Perl et Smalltalk.
Apache Groovy utilise une syntaxe très proche de Java, avec des accolades, et est directement compilé, soit à la volée dynamiquement, soit classiquement avec un compilateur en bytecode et il interagit avec d'autres bibliothèques et codes Java. Groovy utilise une syntaxe curly-bracket { } similaire à Java. La plupart des codes Java sont également syntaxiquement valables Groovy, bien que la sémantique puisse être différente.
Dans cette leçon, je ne vais pas me concentrer ni sur l'introduction du langage Groovy ni sur l'utilisation de ce langage. Pourtant, Groovy fournit un templete (modèle) pour créer des documents HTML, et c'est le sujet que nous allons aborder dans la leçon.
L'objectif de cette leçon est de créer une application  Java Web utilisant  Spring Boot et  Groovy Template pour la couche  View. Biensure, pour la couche  View, vous pouvez sélectionner d'autres technogies telles que JSP, Thymeleaf...

2- Créer un projet Spring Boot

Sur  Eclipse créez un projet  Spring Boot :
Afin d'utiliser  Groovy vous devez ajouter des dépendances  spring-boot-starter-groovy-templates à votre projet.
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-groovy-templates</artifactId>
</dependency>
Le contenu complet du fichier  pom.xml :
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
         
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.o7planning</groupId>
    <artifactId>SpringBootGroovy</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>SpringBootGroovy</name>
    <description>Spring Boot + Groovy</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-groovy-templates</artifactId>
        </dependency>
        
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
SpringBootGroovyApplication.java
package org.o7planning.sbgroovy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootGroovyApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootGroovyApplication.class, args);
    }
    
}

3- Controller, Groovy Template

Créez un fichier  index.tpl dans le dossier  templates.
index.tpl
yieldUnescaped '<!DOCTYPE html>'
html(lang:'en') {
    head {
        meta('http-equiv':'"Content-Type" content="text/html; charset=utf-8"')
        title('Person List')
    }
    body {
        h2 ('A Groovy View with Spring Boot')
        
        h3 ("Message: $message")
       
        table (border: "1")  {
            tr {
               th("First Name")
               th("Last Name")
            }
            persons.each { person ->
                tr {
                   td("$person.firstName")
                   td("$person.lastName")
                }
            }
        }
    }
}
MainController.java
package org.o7planning.sbgroovy.controller;

import java.util.ArrayList;
import java.util.List;

import org.o7planning.sbgroovy.model.Person;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MainController {

    private static List<Person> persons = new ArrayList<Person>();

    static {
        persons.add(new Person("Bill", "Gates"));
        persons.add(new Person("Steve", "Jobs"));
    }

    @RequestMapping(value = "/")
    public String handleRequest(Model model) {
        
        String message = "Person List:";
        
        model.addAttribute("message", message);
        model.addAttribute("persons", persons);

        return "index";
    }

}
Person.java
package org.o7planning.sbgroovy.model;

public class Person {

    private String firstName;
    private String lastName;

    public Person() {

    }

    public Person(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}
L'image ci-dessous explique la relation entre  Controller et  Groovy View :
  • TODO Image.

4- Exécutez l'application

Cliquez sur le bouton droit du projet, sélectionnez :
  • Run As/Spring Boot App
Pour l'instant, votre application est exécutée. Sur le navigateur, accédez au le lien ci-dessous :

View more Tutorials: