Springboot中事件Event的相關使用

2021-09-27 10:41:03 字數 956 閱讀 3312

實際專案開發中,有的服務方法不需要在一次請求中同步完成,比如郵件傳送或 簡訊傳送,訂單和倉庫更新

等,不需要在請求處理業務引數時同步去執行,這個使用可以使用執行緒或者事件或者mq訊息佇列來實現。

但是如果業務比較簡單,使用mq這種比較重的技術 反而得不償失 這個時候事件event就是乙個比較好的

選擇

事件event其實也是執行緒,通過非同步執行的方式,減少業務的冗餘,使請求專注核心業務**的操作,提高系統的響應速度
/**

* 事件基類 用於傳輸事件業務中所需的內容

*/@getter

@setter

/*** 用於接收 事件中所需要的業務資料

*/private string userid;

public pushmsgevent(object source)

public pushmsgevent(object source, string userid)

}

@component

/*** 建立事件

* @param source

* @param userid 業務資料

*/public void publish(object source, string userid)

@override

}}

/**

* 事件***,事件建立後 ***監聽到存在事件 執行業務**

*/@component

@override

}@async

@override

// todo 此處編寫需要處理業務**

}}

同時在springboot啟動類上新增註解 @enableasync //配置支援非同步

SpringBoot中事件的使用

本文基於使用者註冊成功之後傳送簡訊以及郵件功能作為業務場景,將使用者註冊成功作為事件,模擬傳送簡訊以及傳送郵件作為使用者註冊成功事件的 private static final long serialversionuid 1l private usermodel user public userre...

html5 相容火狐 ev的事件

ev.datatransfer.setdata name this index 儲存當前使用者的索引 獲取當前使用者的索引 oli ev.datatransfer.getdata name this index 拖動時候獲取的 ev.datatransfer.setdragimage odiv,0,...

SpringBoot事件監聽

springboot事件監聽機制 spring boot在啟動過程中增加事件監聽機制,為使用者功能拓展提供極大的便利。springboot支援四種事件監聽型別 spring boot啟動開始時執行的事件 spring boot 對應enviroment已經準備完畢,但此時上下文context還沒有建...