繼承ApplicationEvent 類設計模式
public class BusinessEvent extent ApplicationEvent {
public BusinessEvent(Object source) {
super(source);
}
}
複製代碼
@Component
public class OwnBusinessEventListener implements ApplicationListener<BusinessEvent> {
@Override
public void onApplicationEvent(BusinessEvent event) {
//TODO
System.out.println("執行本身的業務邏輯");
}
}
複製代碼
@Autowired
private ApplicationContext context;
void xxxMethod() {
//TODO previous business code
BusinessEvent event = new BusinessEvent("");
context.publishEvent(event);
}
複製代碼
若是須要在一個業務中同時有多個任務處理,則只須要建立一個新的 ApplicationListener 的實現類便可,內部定義本身的處理邏輯。bash
1. 當主業務流程執行時,全部監聽BusinessEvent的監聽器都會收到通知,從而執行業務
2. 此功能對應設計模式中的觀察者模式:一個改變,全部觀察者均能收到通知。
複製代碼