接口方法上的Spring @Async注释

Ale*_*lex 13 spring multithreading

可以@Async在接口方法上使用Spring 注释(因此该接口的所有实现都将隐含@Async在该方法上)或者它是否只能用于具体类?

Wil*_*leu 13

我很快就对它进行了测试,并且@Async在接口上实现异步.

如果你想自己尝试一下:你可以通过检查Thread.currentThread().getId()不同的值(在调用方法之前和方法内部)或者只是Thread.sleep(10000);在预期为异步的方法中添加一个来轻松地测试它.

另请注意返回类型必须是voidjava.util.concurrent.Future.


小智 8

由于@Async定义

@Target(value={TYPE,METHOD})
@Retention(value=RUNTIME)
@Documented
public @interface Async
Run Code Online (Sandbox Code Playgroud)

并且TYPE

类、接口(包括注解类型)或枚举声明

并且METHOD

方法声明

是的,您也可以在接口方法上使用它。

  • 但它_实际上_也会使实现异步吗?:) (14认同)