
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 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.
ESERCITAZIONI DI SPRING BOOT
--> Guarda tutti i video sul canale YouTube <--
- Esercitazioni di Spring Boot 0: come impostare un progetto
- Esercitazioni di Spring Boot 1: anatomia di un progetto
- Esercitazioni di Spring Boot 2: il nostro primo controller REST
- Esercitazioni di Spring Boot 3: gestiamo la logica di business
- Esercitazioni di Spring Boot 4: lavorare con i database
- Esercitazioni di Spring Boot 5: documentiamo le API
- Esercitazioni di Spring Boot 6: fare il deploy su Tomcat
- Esercitazioni di Spring Boot 7: qualche aggiustamento
- Esercitazioni di Spring Boot 8: H2 un database in-memory
- Esercitazioni di Spring Boot 9: Spring Security configurazione di base
- Esercitazioni di Spring Boot 10: usiamo la cache