Spring异步事件
1、发布事件
@Data public class CustomEvent extends ApplicationEvent implements Serializable { private Boolean ignore = Boolean.FALSE; ... }
@Resource private ApplicationEventPublisher publisher; CustomEvent customEvent = new CustomEvent(); customEvent.setIgnore(true); publisher.publishEvent(customEvent);
2、处理事件
@Component
public class MyEventListener {
@Async
@EventListener(condition = "#event.ignore")
public void handleCustomEvent(CustomEvent event) {
...
}
}
注意:
- 首先它是一个spring组件
- 必须声明它是异步的
- 声明它是一个监听器
- 方法中传递的参数表明它是监听哪个事件
- 从监听事件中取参