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 quello 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.
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.
Se accediamo via browser all'indirizzo http://localhost:8080 vedremo la seguente pagina
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 esercitazione entreremo nel vivo creando un primo esempio di controller REST.
[VIDEO]