Spring Boot: inizializzazioni con @PostConstruct

Ci sono diverse situazioni in cui può essere necessario eseguire del codice personalizzato all’avvio di una applicazione Spring Boot, per esempio per effettuare delle inizializzazioni o creare dei dati di test in fase di sviluppo.

Il modo più semplice consiste nel creare un metodo specifico annotandolo con @PostConstruct.

Tale metodo verrà eseguito dopo l’inizializzazione del componente all’interno del quale è inserito.

Ad esempio possiamo aggiungerlo alla classe principale (quella annotata con @SpringBootApplication.

Qualcosa del genere

@PostConstruct
private void postConstruct() {
System.out.println("Eseguito il metodo postConstruct() della classe Application");
}

dove ovviamente il nome del metodo può essere scelto liberamente.

In alternativa, per una migliore organizzazione del codice, si può creare creare una classe specifica annotata con @Component, all’interno della quale aggiungere il codice relativo all’inizializzazione.

Ad esempio

@Component
public class AppInit {

@PostConstruct
public void init() {
System.out.println("Eseguito il metodo init() della classe AppInit");
}
}

Anche in questo caso la scelta dei nomi è del tutto arbitraria. Si può effettuare l’autowiring di componenti, repository ecc. in modo da configurare opportunamente il tutto.

Eseguendo il codice di prova disponibile su GitHub possiamo osservare l’esecuzione automatica dei metodi annotati con @PostConstruct.

post-construct

Di fatti è possibile crearne più di uno ed inserirli in diversi componenti.

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