Para evitar a instanciação automática, o ouvinte não deve ser anotado como
@Component
. A configuração precisa obter o ApplicationContext, que pode ser conectado automaticamente. Assim, minha classe de configuração fica assim:
@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);
}
Observe que isso funciona para qualquer
ApplicationListener
, não apenas AbstractMongoEventListener
.