Pour empêcher l'auto-instanciation, l'écouteur ne doit pas être annoté comme @Component
. La configuration doit saisir le ApplicationContext, qui peut être câblé automatiquement.
Ainsi, ma classe de configuration ressemble à ceci :
@Autowired
private AbstractApplicationContext context;
private void registerListeners() {
ProjectsRepositoryListener firstListener = beanFactory.createBean(ProjectsRepositoryListener.class);
context.addApplicationListener(firstListener);
MySecondListener secondListener = beanFactory.createBean(MySecondListener.class);
context.addApplicationListener(secondListener);
}
Notez que cela fonctionne pour n'importe quel ApplicationListener
, pas seulement AbstractMongoEventListener
.