Spring框架事件

Cur*_*ind 10 java events spring asynchronous

我正在阅读Spring Framework文档,并在Spring中找到了一个关于引发事件的部分ApplicationContext.阅读几段后,我发现Spring事件是同步引发的.有没有办法提出异步事件?非常感谢您的帮助.我正在寻找类似的东西,这将有助于我完成我的模块.

laf*_*ste 5

最简单的异步ApplicationListener

出版商:

@Autowired
private SimpleApplicationEventMulticaster simpleApplicationEventMulticaster;

@Autowired
private AsyncTaskExecutor asyncTaskExecutor;

// ...

simpleApplicationEventMulticaster.setTaskExecutor(asyncTaskExecutor);

// ...

ApplicationEvent event = new ApplicationEvent("");
simpleApplicationEventMulticaster.multicastEvent(event);
Run Code Online (Sandbox Code Playgroud)

听众:

@Component
static class MyListener implements ApplicationListener<ApplicationEvent> 
    public void onApplicationEvent(ApplicationEvent event) {
         // do stuff, typically check event subclass (instanceof) to know which action to perform
    }
}
Run Code Online (Sandbox Code Playgroud)

您应该ApplicationEvent使用您的特定事件进行子类化。您可以在 XML 文件中SimpleApplicationEventMulticaster对其taskExecutor进行配置。

您可能希望ApplicationEventPublisherAware在您的侦听器类中实现并在事件构造函数中传递一个源对象(而不是空字符串)。