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组件
- 必须声明它是异步的
- 声明它是一个监听器
- 方法中传递的参数表明它是监听哪个事件
- 从监听事件中取参