За да предотвратите автоматично инстанциране, слушателят не трябва да бъде анотиран като @Component
. Конфигурацията трябва да се свърже с ApplicationContext, който може да бъде автоматично свързан.
Така моят конфигурационен клас изглежда така:
@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);
}
Имайте предвид, че това работи за всеки ApplicationListener
, а не само AbstractMongoEventListener
.