Exécution de code au démarrage de Spring Boot
Lors de la création d'applications avec Spring Boot, les développeurs rencontrent souvent le besoin d'exécuter des tâches spécifiques une fois que l'application a entièrement initialisé. Cet article aborde ce scénario, en se concentrant spécifiquement sur la surveillance des modifications d'un répertoire après le démarrage de Spring Boot.
L'utilisation de threads à cette fin est problématique, car le framework d'injection de dépendances de Spring (Autowiring) n'a peut-être pas complètement initialisé les services. requis par la tâche de surveillance. Au lieu de cela, Spring Boot propose une approche alternative utilisant les événements d'application.
L'événement ApplicationPreparedEvent est distribué avant la fin de l'injection de dépendances, ce qui le rend inadapté à notre objectif. Heureusement, Spring Boot propose un événement plus approprié :
ApplicationReadyEvent
Cet événement se déclenche une fois que l'application est entièrement initialisée et prête à traiter les requêtes HTTP. En vous abonnant à cet événement, nous pouvons garantir que le code de surveillance du répertoire spécifié ne s'exécute que lorsque l'application est opérationnelle.
L'extrait de code suivant montre comment utiliser ApplicationReadyEvent :
<code class="java">@EventListener(ApplicationReadyEvent.class) public void doSomethingAfterStartup() { System.out.println("hello world, I have just started up"); }</code>
Cette méthode s'exécutera une fois que l'application Spring Boot aura démarré et sera prête à traiter les requêtes. La flexibilité de ApplicationReadyEvent permet l'exécution de n'importe quel code souhaité après le démarrage de l'application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!