1.專案啟動類上加@enableasync
@enableasync//允許非同步
public static void main(string args) }
2.無返回值情況:在需要執行的非同步方法上加@async
@component
public class asynctask catch (interruptedexception e)
******dateformat sf = new ******dateformat("yyyy-mm-dd hh:mm:ss");
system.out.println(sf.format(new date()));
system.out.println(sf.format(system.currenttimemillis()));
system.out.println("非同步任務1結束****************************************==");
}}
5.有返回值情況:
a.在需要執行的非同步方法上加@async
b.方法返回值為future, return new asyncresult("要返回的值");
c.呼叫時通過future.get()方法接收返回值,
@async
public futureasynctask3() catch (interruptedexception e)
return new asyncresult("有返回值的非同步任務");
}
4.測試
@runwith(springrunner.class)
@springboottest
public class asynctasktest
}@test
public void asynctask3()
if (future.isdone() )
log.info("wait async task to end ...");
thread.sleep(1000);
} catch (interruptedexception e) catch (executionexception e) }}
}
**:
Springboot之非同步呼叫(Async)
非同步呼叫通常是指非同步呼叫service。1.啟動類開啟非同步呼叫 enableasync 2.controller層 無特殊處理 public string asyn 3.service層中需要非同步呼叫的方法加 async註解 async public void asyn system.out...
Async非同步呼叫的使用及原理
同步和非同步 async的使用網上例子很多 如 模擬 transactional,async也是生成乙個 類去進行執行非同步方法。spring 在掃瞄bean的時候會掃瞄方法上是否包含 async的註解,如果包含的,spring會為這個bean動態的生成乙個子類,我們稱之為 類 類是繼承我們所寫的b...
Spring中使用 Async非同步呼叫方法
非同步方法呼叫使用場景 處理日誌 傳送郵件 簡訊.spring中提供了 async來實現非同步方法。async修飾類,則該類所有方法都是非同步的,async修飾方法,則該方法是非同步的。被修飾的方法在被呼叫時,會在乙個新的執行緒中執行。asynctask類 component public clas...