【发布时间】:2015-12-10 06:16:51
【问题描述】:
这与此处的另一个问题非常相似:Spring Boot @Async method in controller is executing synchronously。然而,我的 @Service 用 @Async 注释的方法仍在同步执行。我已经尝试了来自不同论坛的所有方法,但没有用。希望有人能帮我弄清楚原因。如下一个简单的 spring boot 项目是行不通的。
AsyncConfiguration.java
@Configuration
@EnableAsync
public class AsyncConfiguration(){}
SomeService.java
@Service
public class SomeService() {
@Async
public void doSomething() {
try {
Thread.sleep(5000L);
} catch (Exception ignore){}
}
}
SomeController.java
@Controller
public class SomeController() {
@Inject SomeService someService;
@RequestMapping(value="/", method=RequestMethod.POST)
public String doStuff() {
someService.doSomething();
return "mytemplate";
}
}
【问题讨论】:
-
你的
AsyncConfiguration上有一个@Configuration对吗? -
@StéphaneNicoll 是的,我愿意。我将编辑问题
-
你的配置看起来很合法,所以问题的根源可能在其他地方。您能否在 github/bitbucket 上分享您的项目或创建 SSCCE (sscce.org)?
-
你能把日志(带有线程名称的日志)放入 SomeService.dosomething() 并发布日志输出吗?
-
如果有帮助,我正在使用
@Service类中的方法使用JavaMailSender发送电子邮件
标签: java spring spring-boot