SpringBoot開(kāi)啟異步調(diào)用方法
異步調(diào)用無(wú)需等待,方法相當(dāng)于子線程,后臺(tái)執(zhí)行,主線程執(zhí)行完成,子線程開(kāi)始執(zhí)行。
SpringBoot 開(kāi)啟異步執(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(" ------------------ 【能源入庫(kù)完成】------------------ {}", nyList); log.info(" ------------------ 【新能源初始化結(jié)束】------------------"); return 0; }
main 方法 開(kāi)啟 @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)用開(kāi)始 】"); //業(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),接著 方法才開(kāi)始執(zhí)行。
錯(cuò)誤
Spring之AOP奇葩報(bào)錯(cuò):Null return value from advice does not match primitive return type for
原因是返回為null 基本類型要用包裝類型。
總結(jié)
1 使用了@Async的方法,會(huì)被當(dāng)成是一個(gè)子線程,所有整個(gè)sendSms方法,會(huì)在主線程執(zhí)行完了之后執(zhí)行
2 同一個(gè)類中,一個(gè)方法調(diào)用另外一個(gè)有@Async的方法,注解是不會(huì)生效的!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot?引入?Redis?并配置序列化并封裝RedisTemplate?
這篇文章主要介紹了Springboot?引入?Redis?并配置序列化并封裝RedisTemplate。文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09Java字符串轉(zhuǎn)時(shí)間幾種常見(jiàn)的方法
在Java中字符串轉(zhuǎn)化為日期格式是一個(gè)常見(jiàn)的需求,日期格式在處理時(shí)間相關(guān)的操作時(shí)非常重要,這篇文章主要給大家介紹了關(guān)于Java字符串轉(zhuǎn)時(shí)間幾種常見(jiàn)的方法,需要的朋友可以參考下2025-07-07Java groovy內(nèi)存回收測(cè)試步驟解析
這篇文章主要介紹了Java groovy內(nèi)存回收測(cè)試步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Spring Data Jpa實(shí)現(xiàn)分頁(yè)和排序代碼實(shí)例
本篇文章主要介紹了Spring Data Jpa實(shí)現(xiàn)分頁(yè)和排序代碼實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03使用kotlin編寫spring cloud微服務(wù)的過(guò)程
這篇文章主要介紹了使用kotlin編寫spring cloud微服務(wù)的相關(guān)知識(shí),本文給大家提到配置文件的操作代碼,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Java利用trueLicense實(shí)現(xiàn)項(xiàng)目離線證書授權(quán)操作步驟
文章介紹了如何使用trueLicense實(shí)現(xiàn)離線授權(quán)控制,包括生成公私鑰、創(chuàng)建證書校驗(yàn)?zāi)K、生成證書模塊和測(cè)試模塊,通過(guò)這種方式,可以控制用戶使用的項(xiàng)目模塊、授權(quán)周期、使用的設(shè)備和服務(wù)器,感興趣的朋友跟隨小編一起看看吧2024-11-11java項(xiàng)目打包成可執(zhí)行jar用log4j將日志寫在jar所在目錄操作
這篇文章主要介紹了java項(xiàng)目打包成可執(zhí)行jar用log4j將日志寫在jar所在目錄操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08