java - 对返回 void 的方法使用 SpringFrameWork @Async

标签 java spring mongodb asynchronous

我正在使用 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/

相关文章:

java - 使用 JMX 的多个 Java 应用程序

java - JDBC 连接在远程工作但在本地不工作

java - Spring Swing 集成

Spring MVC 到 REST

java - 将 A<X,Y> 类型转换为 A<Object,Object>

json - 导轨 3 : Create a valid JSON Object from an Array of data

javascript - 传单和 MongoDB 半径

java - 如何消除 IBM RAD 8/Eclipse 中的错误?

java - 项目 Euler #10 Java 不工作

node.js - 如何从 Mongoose 查询中检索值