簡述Springboot Async 非同步方法

2022-10-06 04:51:08 字數 852 閱讀 7575

1.非同步呼叫

非同步呼叫就是在不阻塞主線程的情況下執行高耗時方法

2.常規非同步

通過開啟新執行緒實現

3.在springboot中啟用非同步方法

需要4個註解

1.@enableasync 開啟非同步

2.@component 註冊非同步元件

3.@async 標註非同步方法

4.@autowired 注入非同步元件

4.進行一次非同步呼叫

1.首先在乙個config類上標註開啟非同步

2.然後建立乙個非同步的元件類,就跟service,controller 一樣一樣的,用component標註,service也行程式設計客棧

3.在類內建立乙個非同步方法,打上async 標記。這個方法必須是例項方法。

4.然後就跟注入service一樣一樣的了。

5.非同步事務

在async 方法上標註@transactional是沒用的。

在async 方法呼叫的service上標註 有效。

6.非同步方法的內部呼叫

非同步方法不支援內部呼叫,也就是非同步方法不能寫在需要呼叫他的類的內部。

比如class a 有a,b,c。b有async標註。此時a對b的非同步呼叫是失效的。

7.為什麼非同步方法必須是例項方法

因為static方法不能被ove程式設計客棧rride。因為@async 非同步方法的實現原理是通過注入乙個**類到bean中,這個**繼承這個bean,需要覆寫非同步方法並執行。 

egzrhdrszc然後這個東西,會被spring放到自己維護的乙個程式設計客棧佇列中。等待執行緒池讀取並執行。

本文標題: 簡述springboot @async 非同步方法

本文位址:

簡述mysql應用 MYSQL使用簡述

您可能感興趣的話題 mssql 一 連線mysql。1 例1 連線到本機上的mysql。首先在開啟dos視窗,然後進入目錄 mysqlbin,再鍵入命令mysql uroot p,回車後提示你輸密碼,如果剛安裝好mysql,超級使用者root是沒有密碼的,故直接回車即可進入到mysql中了,mysq...

PerformanceCounter簡述及用法

一 performancecounter簡述 1 簡單介紹 表示 windows nt 效能計數器元件 命名空間 system.diagnostics 程式集 system 在 system.dll 中 2 建構函式 只介紹本文要用到的 performancecounter string,strin...

簡述資料結構 超簡述演算法

程式由儲存資料的結構和解決問題的演算法組成,在計算機的世界裡,結構和演算法存在 相輔相成 的關係。程式根據演算法選擇最合適的儲存結構,演算法依賴儲存結構,選擇最優的策略處理資料,達到占用空間少 計算時間少的目的。打個比方,遇到乙個實際問題,需要解決兩個事情 1 如何將資料儲存在計算機中 2 用什麼方...