Esercitazioni di Spring Boot 1: anatomia di un progetto

Nel primo post della serie abbiamo creato il classico HelloWorld utilizzando gli strumenti messi a disposizione da Spring Boot.

Ora analizzeremo più in dettaglio la struttura del progetto e i file da cui è costituito, creando un primo esempio di controller REST.

File pom.xml

E’ il classico file di configurazione di un progetto Maven, ma nel nostro caso risulta particolarmente prezioso perchè contiene tutte le dipendenze di cui abbiamo bisogno e senza la necessità di doverle specificare manualmente. Spring Initializr ha fatto il lavoro “sporco” per noi.

Classe HelloworldApplication

La classe principale, anche questa creata automaticamente, rappresenta l’entry point della nostra applicazione e appunto contiene il metodo main() all’interno del quale è chiamato il metodo statico SpringApplication.run().

@SpringBootApplication
public class HelloworldApplication {

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

L’annotazione @SpringBootApplication è equivalente alle annotazioni @Configuration, @EnableAutoConfiguration e @ComponentScan ed è indispensabile per una corretta esecuzione di Spring.

In particolare

  • @Configuration consente alle classi che ne fanno uso di definire dei metodi per la creazione di oggetti (i bean) il cui ciclo di vita sarà gestito direttamente da Spring. Questo è particolarmente utile quando si utilizzano librerie di terze parti di cui non si dispone o non si vuole utilizzare il codice sorgente.
  • @EnableAutoConfiguration attiva il meccanismo di configurazione automatica dei bean che saranno gestiti direttamente dal framework.
  • @ComponentScan consente a Spring di ricercare tutte le classi annotate con @Component o con una sua specializzazione come @Controller, @RestController, @Repository, ecc. Da notare che di default la scansione riguarda solo il package in cui è inclusa l’applicazione principale e i suoi sottopackage.

Classe ServletInitializer

Questa classe, che tralasceremo per ora, è utile per configurare opportunamente la servlet che gestirà le richieste provenienti dai client.

File application.properties

Collocato nella cartella resources è utilizzato per memorizzare proprietà e configurazioni per connettersi ad un database, cambiare la porta del server embedded o utilizzare correttamente altre risorse. Lo vedremo più in dettaglio nelle prossime lezioni.

Ora non ci resta che provare l’applicazione. Possiamo avviarla dal nostro IDE o da riga di comando ricorrendo ad uno specifico goal di maven

mvn spring-boot:run

Nella console possiamo vedere il log delle operazioni ed in particolare l’avvio dell’istanza integrata del server Tomcat che si pone in ascolto sulla porta standard 8080.

spring-boot-cli

Se accediamo via browser all’indirizzo http://localhost:8080 vedremo la seguente pagina

spring-boot-browser

Viene segnalato un errore perchè non abbiamo alcuna welcome page impostata sulla route “/” però siamo sicuri che tutto funziona perchè il server ci sta rispondendo.

Nella prossima lezione entreremo nel vivo creando un primo esempio di controller REST.

Il codice di questo esempio e dei successivi è già presente sul mio repository GitHub quindi è possibile avere un’idea di ciò che ci accingeremo a realizzare passo dopo passo.

 

 

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Utilizzando il sito, accetti l'invio dei cookies da parte nostra. Maggiori informazioni

Questo sito utilizza i cookies per fornire la migliore esperienza di navigazione possibile. Continuando ad utilizzarlo senza modificare le impostazioni o cliccando su "Accetta" acconsenti al loro utilizzo.

Chiudi