01 Spring學習之-事件驅動eventListener

觀察者模式


1.註冊一個監聽事件

繼承ApplicationEvent設計模式

public class BusinessEvent extent ApplicationEvent {
    public BusinessEvent(Object source) {
        super(source);
    }
}
複製代碼

2. 註冊事件監聽

@Component
public class OwnBusinessEventListener implements ApplicationListener<BusinessEvent> {
    @Override
    public void onApplicationEvent(BusinessEvent event) {
        //TODO
        System.out.println("執行本身的業務邏輯");
    }
}
複製代碼

3. 觸發事件監聽

@Autowired
private ApplicationContext context;

void xxxMethod() {
    //TODO previous business code
    BusinessEvent event = new BusinessEvent("");
    context.publishEvent(event);
}

複製代碼

4. 功能擴展

若是須要在一個業務中同時有多個任務處理,則只須要建立一個新的 ApplicationListener 的實現類便可,內部定義本身的處理邏輯。bash

1. 當主業務流程執行時,全部監聽BusinessEvent的監聽器都會收到通知,從而執行業務
2. 此功能對應設計模式中的觀察者模式:一個改變,全部觀察者均能收到通知。
複製代碼
相關文章
相關標籤/搜索