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組件
- 必須聲明它是異步的
- 聲明它是一個監聽器
- 方法中傳遞的參數表明它是監聽哪個事件
- 從監聽事件中取參
