Nel nostro primo tutorial Hello World con Spring Boot abbiamo appreso come creare una semplice applicazione con Spring Boot utilizzando la Command Line Interface di Spring Boot. In questo tutorial vedremo un modo ancora più intuitivo per creare applicazioni usando la applicazione cloud Spring Initializr. Lo Spring Boot Initializr ci consentità di generare un template di base per il nostro progetto, con tutte le dipendenze necessarie per poterlo compilare ed eseguire.

L'applicazione cloud Spring Initializr è disponibile al seguente indirizzo http://start.spring.io . E si presenta così:

spring boot hello world initializr

I parametri necessari per la creazione del progetto sono il tipo di build utilizzato (Maven o Gradle), la versione di Spring Boot che volete utilizzare. Sul lato sinistro della pagina occorre specificare i project metadata. Dovete fornire quantomeno il groupID del progetto e la versione, anche se dei default vengono proposti. Cliccando su “Switch to the full version” è possibile fornire informazioni aggiuntive come il package name e la versione del progetto. Questi metadata confluiranno nel file di configurazione del progetto che andrete ad usare (pom.xml per Maven o build.gradle per Gradle).

Sul lato destro viene richiesto di specificare le librerie (o dipendenze) necessarie per il progetto. Anche qui, passando alla "full version" dell'editor è possibile avere informazioni aggiuntive sulle librerie disponibili.

Nel nostro caso, abbiamo aggiunto i REST Services perchè andremo a sviluppare una applicazione REST di esempio. Eccon quindi la nostra selezione:


spring boot hello world initializr

Selezionate Generate Project per scaricare il progetto sul vostro pc.

Caricare il progetto in un ambiente di sviluppo

Una volta scaricato il progetto, è consigliabile importarlo dentro un IDE per poter iniziare a lavorarci su. Uno degli ambienti consigliati è  IntelliJ che può essere scaricato nella sua versione Community (free) dal sito https://www.jetbrains.com/idea/ .Una volta scaricato, è necessario soltanto scompattarlo per poter iniziare a lavorarci su.
Per poter utilizzare il progetto appena creato con l' Initializr, è sufficiente scegliere la funzione "Import Project":

spring boot hello world initializr

Puntate alla cartella dove avete il vostro progetto ("simplerest" nel nostro caso):

spring boot hello world initializr

Specificate di usare Maven come import Model:

spring boot hello world initializr

Eccon infine il vostro progetto, una volta che avete selezionato la vista "Project Files" su IntelliJ:

spring boot hello world initializr

Come vedete, esiste già una main class nel progetto:

package com.example.simplerest;

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

@SpringBootApplication
public class SimplerestApplication {

   public static void main(String[] args) {

   SpringApplication.run(SimplerestApplication.class, args);
   }
}

Notate l'annotazione @SpringBootApplication che consente il component-scanning è l'auto-configurazione della vostra applicazione Spring Boot. Difatti, questa annotazione combina tre distinte funzionalità:

  • @Configuration: Designa una classe idonea alla configurazione dell'applicazione usando il modello Spring.
  • @ComponentScan: Abilita il component-scanning in modo che il Web controller e gi altri componenti verranno scoperti automaticamente e registrati come Bean Spring nel contesto applicativo.
  • @EnableAutoConfiguration: Questa annotazione indica a Spring Boot di "indovinare" come si vorrà configurare Spring, in base alle dipendenze jar che sono state aggiunte. Ad esempio, se HSQLDB si trova sul classpath e non sono stati configurati manualmente alcun bean di connessione al database, Spring configura automaticamente un database H2 in memoria.

Avendo la main class, è tempo di aggiungere un Controller per poter disporre di un servizio REST:

package com.example.simplerest;

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Controller {

private static final String template = "Hello, %s!";

   @RequestMapping("/greeting")
   public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
      return String.format(template, name);
   }
}

@RestController indica che i dati tornati da ogni metodo verranno scritti direttamente nella response senza che vengano trattati da alcun template.
La nostra prima applicazione è pronta. Ci sono diversi modi per avviarla. Il più immediato è usando il plugin di Maven che fornisce il seguente goal:

$ mvn clean spring-boot:run

Come potete vedere dalla console, in breve l'aplicazione sarà disponibile:

spring boot hello world initializr

Per testarla, è sufficiente aprire un browser e richiedere il servizio "greeting" passando un parametro per il nome. Ad esempio: http://localhost:8080/greeting?name=(nome) :

spring boot hello world initializr

Semplicissimo! abbiamo visto come poter creare una semplice applicazione REST con Spring Boot usando lo Spring Boot Inizializr, successivamente importanto l'applicazione all'interno di IntelliJ.

FREE WildFly Application Server - JBoss - Quarkus - Drools Tutorials