Per impedire la creazione di istanze automatiche, il listener non deve essere annotato come @Component
. La configurazione deve ottenere l'ApplicationContext, che può essere cablato automaticamente.
Pertanto, la mia classe di configurazione è simile a questa:
@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);
}
Nota che funziona con qualsiasi ApplicationListener
, non solo AbstractMongoEventListener
.