我正在使用 Spring Boot 框架作为我的后端。
这是我想异步执行的调用之一 - 它只是将用户保存到我的 mongoDB 数据库中:
@Async
public Future<Void> saveUser(String userid) {
User user = new User();
user.setUserId(userid);
return new AsyncResult<Void>(mongoTemplate.save(user));
}
该方法给我一个错误 mongoTemplate.save(user)
返回 void
值而不是 Void
对象。
我试图通过在 void
中替换来更改方法如下但它不像Future<void>
那样工作和 AsyncResult<void>
不被接受:
@Async
public Future<void> saveUser(String userid) {
User user = new User();
user.setUserId(userid);
return new AsyncResult<void>(mongoTemplate.save(user));
}
有没有在 Spring 上以异步方式运行返回 void 的方法?
最佳答案
尝试以下操作:
@Async
public void saveUser(String userid) {
User user = new User();
user.setUserId(userid);
mongoTemplate.save(user);
}
Future只有在有除void以外的返回类型时才需要使用。
关于java - 对返回 void 的方法使用 SpringFrameWork @Async,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962511/