Spring異步-@Async註解

Spring異步:@Async註解異步

 

使用@Async前須要開啓異步支持:@EnableAsync 註解和XML方式spa

 

@Async返回值的調用:須要使用Future包裝 代理


  1.若是沒有使用Future包裝,能立馬返回信息,可是返回的信息是異步方法沒執行完的,通常是null。事務


  2.Future.get()方法獲取異步的返回值。若是異步沒有執行完成,那麼會等到異步完成時調用。get


@Async與@Transaction一塊兒使用時,事務是無效的。若是要事務有效,須要在另一個類中寫事務的代碼。io


@Async的異常處理:可用Future.get()來獲取異常。
        方法一:異步方法中捕獲異常,用Future包裝異常信息
        方法二:直接try-catch Future.get()方法


異步方法和調用類不要在同一個類中方法名 (和事務同樣),由於同一個類中調用方法的話會略過代理進行直接調用異常

 

必須是 public ( 和事務同樣)用public修飾才能被進行代理異常處理


@Async和@PostConstruct不能同時在同一個類中使用try-catch

相關文章
相關標籤/搜索