@Async 注解不生效


  今天發現了一個奇怪的問題,@Async 在某些地方不生效,不是異步的而是同步。(自己對Spring-Boot的@Async 注解不是很了解導致的)

  大概代碼如下:

  

public void handData() throws InterruptedException {
        System.out.println("方法1");
        asyneTask();
        System.out.println("運行結束");
    }

    @Async
    public void asyneTask() throws InterruptedException {
        Thread.sleep(1000);
        System.out.println("方法2");
    }

  程序執行的時候,永遠會等待【方法2】輸出,查了一下百度,大致的方法是缺少配置之類的,但是我這里顯然不是,因為其他的異步注解生效了,不過從以下博客或問答中發現了問題:

  【博客】http://blog.didispace.com/springbootasync/

  【問答】https://www.oschina.net/question/3070332_2269990

  博客中,異步的方法調用是在另一個類里面,而我的這個是兩個方法都在同一個類里面,只是一個方法調用另一個異步方法,不生效。

   解決方法就是拆分兩個方法,將異步方法單獨放在一個類里面,然后再去調用就解決了。具體參考【博客】鏈接。

  如果錯漏歡迎指正。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM