Spring @async注释可能无法触发的原因是什么?

时间:2016-08-04 10:58:27

标签: java spring asynchronous annotations

我们有一些使用Spring @async annotation注释的代码 - 这意味着在新的Thread中运行该方法。从理论上讲 - 这种方法应该在启动时运行。

在实践中 - 它根本没有运行。

package ...
...
import org.springframework.scheduling.annotation.Async;
...
@Component
public class MyClass {
...
    @Async
    public void mymethod() {
    ...
    }
}

我正在考虑这可能的所有原因:

  • 类不在Spring组件扫描路径中(不是在这种情况下 - 已检查)

我的问题是: Spring @async注释可能无法触发的原因是什么?

(是否有一个类我可以登录以防异步执行尝试失败?)

1 个答案:

答案 0 :(得分:4)

@Async对我不起作用的情况

  1. @EnableAsync失踪
  2. @Async方法不公开
  3. @Async带注释的方法是从同一个类的另一个方法调用的。可能绕过 async 代理代码并只调用plain方法。
相关问题