从类内部调用的Spring @Async方法



我有一个弹簧组件,它有一些方法作为@Async

我想创建一个私有方法并运行@Async,但它不会工作,因为spring不帮助从bean内的自我调用…

是否有一个简单的方法允许一个特定的私有方法允许AOP @Async?或者获得一个线程池并手动执行更简单?

不是调用this上的async方法,而是注入bean并调用bean上的方法。这是一个例子:

public class MyService {

@Lazy
@Autowired
private MyService myService;

public void doStuff() throws Exception {
myService.doStuffAsync();
System.out.println("doing stuff sync.");
}

@Async
public void doStuffAsync() throws Exception {
TimeUnit.SECONDS.sleep(3);
System.out.println("doing stuff async.");
}
}
  • 你必须使用@Lazy!
  • 你必须调用myService.doStuffAsync()而不是this.doStuffAsync()

相关内容

  • 没有找到相关文章

最新更新