Mise en place des listeners
Spring Boot utilise l’interface SpringApplicationRunListener qui a pour implémentation EventPublishingRunListener.
C’est ce listener qui va envoyer les événements durant la phase d’initialisation :
Evénement |
Signification |
starting |
ApplicationStartingEvent |
environmentPrepared |
ApplicationEnvironmentPreparedEvent |
contextPrepared |
ApplicationContextInitilizedEvent |
ContextLoaded |
ApplicationPreparedEvent |
started |
ApplicationStartedEvent |
running |
ApplicationReadyEvent |
failed |
ApplicationFailedEvent |
Nous avons déjà présenté certains de ces événements.
1. Le starting : ApplicationStartingEvent
Il est possible d’enregistrer des listeners comme nous l’avons vu dans le chapitre sur les listeners :
class MonListener implements ApplicationListener<ApplicationStartingEvent> {
void onApplicationEvent(ApplicationStartingEvent event {...}
}
Étant donné qu’à ce moment précis du démarrage Spring ne dispose pas encore du contexte normal de l’application, il va se baser sur le BootstrapContext que nous pouvons alimenter de trois façons :
-
Utiliser le chargement des factories via la mécanique du spring.factories en ajoutant une ligne au org.springframework.context.ApplicationListener.
-
Utiliser les méthodes SpringApplication.addListeners(...) et SpringApplicationBuilder.listeners(...).
-
Ajouter le listener dans le classpath au démarrage :...