最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中的異步方法@Async失效的原因詳解

 更新時間:2024年01月13日 09:10:24   作者:java架構(gòu)師-太陽  
這篇文章主要介紹了Spring中的異步方法@Async失效的原因詳解,@Async屬于異步注解,@Async放在方法上標(biāo)識該方法為異步方法,異步是指進(jìn)程不需要一直等待下去,而是繼續(xù)執(zhí)行下面的操作,不管其他進(jìn)程的狀態(tài),需要的朋友可以參考下

Spring中的異步方法@Async失效的原因

1.沒有在配置類中開啟@EnableAsync注解,導(dǎo)致異步方法失效。

@Configuration
@EnableAsync // 開啟異步支持
public class AppConfig {
    // ...
}

2.異步方法必須要被其它類中的方法調(diào)用,如果在同一個類中調(diào)用,異步方法仍然是同步執(zhí)行的。

@Service
public class DemoService {
    @Async
    public void asyncMethod() {
        // ...
    }
    
    public void callAsyncMethod() {
        asyncMethod(); // 異步方法不會被異步執(zhí)行
    }
}

@Service
public class CallerService {
    @Autowired
    private DemoService demoService;
    
    public void callAsyncMethod() {
        demoService.asyncMethod(); // 異步方法會被異步執(zhí)行
    }
}

3.異步方法必須要在public方法中被調(diào)用,如果被同類中的private方法調(diào)用,異步方法仍然是同步執(zhí)行的。

@Service
public class DemoService {
    @Async
    public void asyncMethod() {
        // ...
    }
    
    public void callAsyncMethod() {
        privateMethod(); // 異步方法不會被異步執(zhí)行
    }
    
    private void privateMethod() {
        asyncMethod(); // 異步方法不會被異步執(zhí)行
    }
}

4.異步方法必須是非靜態(tài)方法,如果是靜態(tài)方法,異步方法仍然是同步執(zhí)行的。

@Service
public class DemoService {
    @Async
    public static void asyncMethod() {
        // ...
    }
    
    public void callAsyncMethod() {
        asyncMethod(); // 異步方法不會被異步執(zhí)行
    }
}

5.異步方法必須要有返回值,如果沒有返回值,異步方法仍然是同步執(zhí)行的。

@Service
public class DemoService {
    @Async
    public void asyncMethod() {
        // ...
    }
    
    @Async
    public Future<String> asyncMethodWithResult() {
        // ...
        return new AsyncResult<>("result");
    }
}

@Service
public class CallerService {
    @Autowired
    private DemoService demoService;
    
    public void callAsyncMethod() {
        demoService.asyncMethod(); // 異步方法不會被異步執(zhí)行
        Future<String> future = demoService.asyncMethodWithResult(); // 異步方法會被異步執(zhí)行
    }
}

到此這篇關(guān)于Spring中的異步方法@Async失效的原因詳解的文章就介紹到這了,更多相關(guān)Spring的@Async失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

彭州市| 观塘区| 越西县| 东兰县| 综艺| 龙岩市| 彭山县| 西林县| 淮阳县| 池州市| 高雄县| 宝兴县| 广昌县| 青海省| 张家界市| 鲜城| 威信县| 依兰县| 铜川市| 临潭县| 兰考县| 花莲县| 襄汾县| 聊城市| 墨玉县| 遵化市| 和龙市| 合江县| 美姑县| 乐都县| 体育| 灵丘县| 奉贤区| 临安市| 南宁市| 仪陇县| 雷州市| 定安县| 吉水县| 邢台市| 台东县|