在之前的專案中是使用了threadpooltaskthread來實現執行緒池,在sping配置檔案要配置裡的內容確實不多,但是每使用一次都要注入bean,並且呼叫execute(runnable)方法來實現,具體實現參考我的另一篇文章:threadpooltaskexecutor簡單實現執行緒池
今天要說的是使用@async來實現執行緒池,簡單且實用。
1.在spring.xml配置非同步執行緒池,task:annotation-driven註解是讓@async註解生效的,配置的asyncexecutor是預設執行緒池,可以配置多個,在註解的時候註明是哪個就行了,例如@async(「logexecutor」)就是呼叫logexecutor這個執行緒池。如果直接使用@async則會使用預設的執行緒池。
2.接下來就簡單了,在需要使用多執行緒的方法上加上@async註解,就會開啟多執行緒,這裡值得注意的是在本類中呼叫非同步方法是不生效的,具體原因博主還在**。
spring Async後台非同步方法
情景 在某些業務過程,對於一些耗時較長,使用者無需等待的過程,可以使用非同步方法進行處理。使用spring async可以實現非同步方法 xmlns xmlns xsi xmlns tx xmlns context xmlns aop xmlns mvc xmlns task xsi schemal...
SpringAop註解實現
該簡單例子實現方法的前置增強列印日誌,簡單的來說就是在呼叫某個方法之前會呼叫另乙個方法 普通類 calculator component public class calculator public int sub int i,int j public int mul int i,int j pub...
基於註解實現
用於記錄日誌的工具類,它裡面提供了公共的 component logger aspect 表示當前類是乙個切面類 public class logger 前置通知 before pt1 public void beforeprintlog 後置通知 afterreturning pt1 public...