Le printemps a certains événements standard que vous pouvez manipuler.
Pour ce faire, vous devez créer et enregistrer un haricot qui implémente l' ApplicationListener
interface, quelque chose comme ceci:
package test.pack.age;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
public class ApplicationListenerBean implements ApplicationListener {
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ContextRefreshedEvent) {
ApplicationContext applicationContext = ((ContextRefreshedEvent) event).getApplicationContext();
// now you can do applicationContext.getBean(...)
// ...
}
}
}
Vous enregistrez ensuite ce bean dans votre servlet.xml
ou applicationContext.xml
le fichier:
<bean id="eventListenerBean" class="test.pack.age.ApplicationListenerBean" />
et le Printemps en informera lorsque le contexte de l'application est initialisé.
Au Printemps 3 (si vous utilisez cette version), l' ApplicationListener
classe est générique et vous pouvez déclarer le type d'événement qui vous intéresse, et l'événement sera filtré en conséquence. Vous pouvez simplifier un peu de votre bean code comme ceci:
public class ApplicationListenerBean implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
ApplicationContext applicationContext = event.getApplicationContext();
// now you can do applicationContext.getBean(...)
// ...
}
}