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

相关文章
相关标签/搜索