Aby se zabránilo automatické instanciaci, posluchač nesmí být označen jako @Component
. Konfigurace potřebuje získat ApplicationContext, který může být automaticky zapojen.
Moje konfigurační třída tedy vypadá takto:
@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);
}
Všimněte si, že to funguje pro jakýkoli ApplicationListener
, nejen AbstractMongoEventListener
.