Aby zapobiec automatycznej instancji, detektor nie może mieć adnotacji jako @Component
. Konfiguracja musi uzyskać dostęp do ApplicationContext, który może być automatycznie połączony.
Zatem moja klasa konfiguracyjna wygląda tak:
@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);
}
Zauważ, że działa to dla każdego ApplicationListener
, a nie tylko AbstractMongoEventListener
.