java基於事件驅動之spring事件驅動

事件驅動4個要素:

事件、事件源、註冊中心(事件通道)、偵聽器。

事件驅動和觀察者模式本質一樣,事件驅動是觀察者模式的經典實現。

事件驅動的好處:

1、 無耦合的關聯,事件發佈者和訂閱者不需要預先知道彼此的存在。

2、 異步消息傳遞,業務邏輯和事件可以同步發生。

3、 多對多的交互,發佈訂閱模型。




定義事件類:這個類需要繼承ApplicationEvent類。

註冊事件的監聽器:監聽類需要實現ApplicationListener接口,並將泛型設置爲具體的事件類。

事件生產者:需要實現ApplicationContextAware接口,通過applicationContext.publishEvent()發佈事件。

註冊中心:spring初始化的時候將所有的監聽器放入集合中,當發佈事件後spring會遍歷集合將監聽這個事件的所有監聽器取出來依次執行監聽代碼。


具體業務

傳統的業務流程,飛機票預定和發送短信、發送郵件耦合在一起,在同一個線程中,會出現如果短信或者郵件服務異常會引起主業務異常。所以需要通過事件驅動方式解耦。



基於spring的事件驅動不止在代碼級別解耦,一定要在線程級別解耦。配置事件異步支持(多線程方式),並通過線程池來實現不同的監聽器用不同的線程。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章