Spring @EventListener注释不起作用

Bab*_*yan 5 spring event-handling

我想在一个类中处理多个事件,这是我的示例:

@Lazy(false)
@Component
public class EventListenerImpl {

    @EventListener
    public void handleContextRefreshedEvent(ContextRefreshedEvent event) {
        LOGGER.log(event.getSource());
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我的应用程序启动时,不会执行此方法。

在我的applicationContext.xml我有:

<context:annotation-config/>
<context:component-scan base-package="..."/>
Run Code Online (Sandbox Code Playgroud)

@EventListener根据文档,这应该足以工作。

旧的实现方式ApplicationListener<ContextRefreshedEvent>很好。

我正在使用Spring 4.2.4.RELEASE。

Bab*_*yan 4

好吧,这对我来说仍然是一个谜。我敢打赌这是某种奇怪的 maven/ide 缓存问题,但无论如何这在几次重新启动后对我有用:

@Lazy(false)
@Component
public class EventListenerImpl {

    @EventListener
    public void whatever(final ContextRefreshedEvent event) {
        event.getSource();
    }
}
Run Code Online (Sandbox Code Playgroud)