Spring Boot Event 觀察者模式,輕松帶你實現(xiàn)業(yè)務解耦!
上一篇:Alibaba開源內網(wǎng)高并發(fā)編程手冊.pdf
寫在最前
MQ 確實可以解決這個問題,但 MQ 重啊,非必要不提升架構復雜度。針對這些問題,我們了解一下 Spring Event。
Spring Event 同步使用
Application Event)其實就是一個觀察者設計模式,一個 Bean 處理完成任務后希望通知其它 Bean 或者說一個 Bean 想觀察監(jiān)聽另一個Bean 的行為。1.自定義事件
定義事件,繼承 ApplicationEvent 的類成為一個事件類
2.定義監(jiān)聽器
監(jiān)聽并處理事件,實現(xiàn) ApplicationListener 接口或者使用 @EventListener 注解
3.定義發(fā)布者
發(fā)布事件,通過 ApplicationEventPublisher 發(fā)布事件
4.單測執(zhí)行
執(zhí)行結果如下:
Spring Event 異步使用
有些業(yè)務場景不需要在一次請求中同步完成,比如郵件發(fā)送、短信發(fā)送等。
1.自定義事件
2.定義監(jiān)聽器
推薦使用 @EventListener 注解
3.定義發(fā)布者
4.單測執(zhí)行(同步)
執(zhí)行結果如下:
5.開啟異步
啟動類增加 @EnableAsync 注解
Listener 類需要開啟異步的方法增加 @Async 注解
6.單測執(zhí)行(異步)
發(fā)送短信的線程顯示 task-1,主線程結束后(總耗時:(2017)毫秒)控制臺停止打印了
來源:blog.csdn.net/csp732171109/article/details/124377254
-End-
正文結束
1.全新 IDEA 2022.2 正式發(fā)布,新特性真香!

評論
圖片
表情
