2016-08-04 63 views
0

我们得到了与Spring @async annotation注释一些代码 - 这是指运行在一个新线程的方法。理论上 - 这种方法应该在启动时运行。Spring @async注释失败的原因是什么?

实际上 - 它不是在所有运行。

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

我想尝试所有可能的原因,这可能是:

  • 类没有Spring组件扫描路径(在此情况下 - 选中)

我问题是:Spring @async注释失败的原因是什么?

(有一类我可以登录的情况下异步执行的尝试和失败?)

+1

何必'@ ASync'在启动时运行。这里没有任何内容可以说清楚。另外,当一些东西应该在启动时运行时,通常使用init方法是错误的方法。为什么?因为AOP可能还没有被应用,所以'@Async'或'@ Transactional'无用。 –

回答

3

这些是@Async不是为我

  1. @EnableAsync失踪
  2. 工作情况
  3. @Async方法是不公开的
  4. @Async标注的方法是从同一类的其他方法调用。也许绕过异步代理代码,只是简单的调用方法。
相关问题