SpringBoot開啟異步調(diào)用方法
異步調(diào)用無需等待,方法相當(dāng)于子線程,后臺執(zhí)行,主線程執(zhí)行完成,子線程開始執(zhí)行。
SpringBoot 開啟異步執(zhí)行僅需兩步:
方法上加 @Async
@Override @Async @Transactional(rollbackFor = Exception.class) public Integer init(DatePojo datePojo){ //xxxxxxxxxxx 業(yè)務(wù)略 xxxxxxx log.info(" 起止日期為 : {} , {} ", start, end); //xxxxxxxxxxxxx 業(yè)務(wù)略 xxxxxxx log.info(" ------------------ 【能源入庫完成】------------------ {}", nyList); log.info(" ------------------ 【新能源初始化結(jié)束】------------------"); return 0; }
main 方法 開啟 @EnableAsync
@SpringBootApplication @EnableAsync public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
controller
@PostMapping("/ny") public ReturnMessage ny( @RequestBody DatePojo datePojo, BindingResult result) { log.info(" 【 能源初始化接口調(diào)用開始 】"); //業(yè)務(wù)類 Integer data = xstjJdcNyService.init(datePojo); log.info(" 【 能源初始化接口調(diào)用結(jié)束 】"); return new ReturnMessage(CodeMsgEnum.OK.getCode(), CodeMsgEnum.OK.getMsg(), data); }
執(zhí)行結(jié)果
可以看到 controller 先執(zhí)行完成然后返回狀態(tài),接著 方法才開始執(zhí)行。
錯誤
Spring之AOP奇葩報錯:Null return value from advice does not match primitive return type for
原因是返回為null 基本類型要用包裝類型。
總結(jié)
1 使用了@Async的方法,會被當(dāng)成是一個子線程,所有整個sendSms方法,會在主線程執(zhí)行完了之后執(zhí)行
2 同一個類中,一個方法調(diào)用另外一個有@Async的方法,注解是不會生效的!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot封裝自己的Starter的實現(xiàn)方法
這篇文章主要介紹了SpringBoot封裝自己的Starter的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04Java線程操作的常見方法【線程名稱獲取、設(shè)置、線程啟動判斷等】
這篇文章主要介紹了Java線程操作的常見方法,結(jié)合實例形式總結(jié)分析了java線程的創(chuàng)建、線程名稱的獲取、設(shè)置以及線程啟動的判斷等相關(guān)操作實現(xiàn)技巧,需要的朋友可以參考下2019-10-10關(guān)于SpringBoot配置文件application.properties的路徑問題
這篇文章主要介紹了關(guān)于SpringBoot配置文件application.properties的路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08一篇文章教你使用SpringBoot如何實現(xiàn)定時任務(wù)
這篇文章主要給大家介紹了關(guān)于如何利用一篇文章教你使用SpringBoot實現(xiàn)定時任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10淺析Java中StringBuffer和StringBuilder的使用
當(dāng)對字符串進(jìn)行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。本文就來和大家簡單聊聊這二者的使用與區(qū)別吧,希望對大家有所幫助2023-04-04