188 votes

Exécution de la méthode au démarrage dans Spring

Existe-t-il une fonctionnalité de Spring 3 permettant d'exécuter certaines méthodes lorsque l'application démarre pour la première fois ? Je sais que je peux faire l'astuce de définir une méthode avec @Scheduled et elle s'exécute juste après le démarrage, mais ensuite elle s'exécutera périodiquement.

2 votes

Quel est le truc avec @Scheduled ? c'est exactement ce que je veux !

0voto

Cory Klein Points 5117

Si vous souhaitez configurer un bean avant que votre application ne s'exécute complètement, vous pouvez utiliser la méthode suivante @Autowired :

@Autowired
private void configureBean(MyBean: bean) {
    bean.setConfiguration(myConfiguration);
}

0voto

krmanish007 Points 1

Vous pouvez utiliser @EventListener sur votre composant, qui sera invoqué après le démarrage du serveur et l'initialisation de tous les beans.

@EventListener
public void onApplicationEvent(ContextClosedEvent event) {

}

0voto

Cameron Hudson Points 124

Pour un fichier StartupHousekeeper.java situé dans le paquet com.app.startup ,

Faites-le dans StartupHousekeeper.java :

@Component
public class StartupHousekeeper {

  @EventListener(ContextRefreshedEvent.class)
  public void keepHouse() {
    System.out.println("This prints at startup.");
  }
}

Et faites-le dans myDispatcher-servlet.java :

<?xml version="1.0" encoding="UTF-8"?>
<beans>

    <mvc:annotation-driven />
    <context:component-scan base-package="com.app.startup" />

</beans>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X