使用 Spring Boot 2.1.1.RELEASE / Spring Framework 5.1.4,我有一个应用程序通过以下方式启用@Async
了@Transactional
注释:
@EnableAsync(mode = AdviceMode.ASPECTJ)
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)
运行同时使用两者注释的方法时,首先创建事务,然后开始异步执行。因此,实际的方法体不会在事务内部执行。
@Transactional
@Async
public void myAsyncMethod() {
// asynchronous database stuff
}
我如何配置spring /方面以有意义的顺序实际执行,例如在新线程上启动事务?
附带说明一下,对于较旧的 Spring Boot 1.5.17 / Spring Framework 4.3.20,它确实有效。