Spring異步方法註解@Async

本文僅用於學習交流:

轉載自:http://www.mekau.com/3991.html

在同一個類中,一個方法調用另外一個有註解(比如@Async,@Transational)的方法,註解是不會生效的。

  1.  在調用@Async方法的類後面添加註解: @EnableAsync
  2.  在被調用的方法增加@Async註解
  3.  調用和被調用, 不能在一個類裏面定義, 要分開定義.
  4.  方法所屬的類的對象需要是被Spring容器所管理的,也就是指被@Controller @Service @Repository @Component這些註解的類

有時我們希望異步地調用一個方法,也就是調用這個方法的時候期望它立即返回。通常這樣做有以下3種情景:

  1. 我們不關心方法的返回值
  2. 方法的返回值爲void
  3. 通過Future對象異步地獲得返回值

我們可以新創建一個線程,在其run方法裏調用這個方法,然而,如果使用了Spring框架的話,可以使用其註解來屏蔽複雜的線程細節,而簡單地將方法變爲可異步調用的方法。

首先,方法所屬的類的對象需要是被Spring容器所管理的,也就是指被@Controller @Service @Repository @Component這些註解的類

其次,需要在Spring的配置文件中打開task註解驅動:

然後,在被異步調用的方法上面加上@Async註解,表明這個方法可以被異步地調用。

最後,在調用方法所在的類上面加上@EnableAsync註解,在該類中調用@Async的方法使用異步的方式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章