最新国产好看的视频,伊人天堂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)文章

最新評論

钟山县| 万盛区| 玉林市| 巫山县| 武乡县| 上林县| 广水市| 中阳县| 林口县| 禹城市| 南木林县| 曲松县| 宝丰县| 奇台县| 西藏| 丰县| 资阳市| 云阳县| 上饶县| 德兴市| 林西县| 文化| 余庆县| 宜都市| 威远县| 太湖县| 清水河县| 溧阳市| 鄯善县| 黄冈市| 怀仁县| 毕节市| 建平县| 格尔木市| 蒙山县| 穆棱市| 拉萨市| 青川县| 太湖县| 平武县| 阿合奇县|