无法使CompletableFuture和Spring REST协同工作

问题描述 投票:0回答:1

我一直在尝试为用户登录做一个简单的后端。

如果我不使用线程,它工作正常,但当我尝试实现多线程时,由于某种原因它会中断。

现在,我只是想做一些简单的事情,比如从JSON格式的User表中检索所有用户的信息。问题是,即使dbActions.getAll()返回正确的List,Rest控制器也不会向Postman返回任何内容。

没有错误,没有例外,没有。我真的可以使用一些帮助。我试图开始工作的代码部分如下。

休息控制器:

@Async
@RequestMapping(value="/view", method =RequestMethod.GET)
public List<User> viewAll() {
    try {
        List<User> list = new ArrayList<>();
        list = dbActions.getAll();
        return list;
    }catch(Exception e) {
        e.printStackTrace();
        return null;
    }
}

dbActions服务:

public List<User> getAll() {
    List<User> results = new ArrayList<>();
    CompletableFuture<Void> future;
    try {
        future = CompletableFuture.runAsync(new Runnable() {
            public void run() {
                userRepo.findAll().forEach(results::add);
            }
        });
        future.get();
        return results;
    } catch (Exception e) {
        e.printStackTrace();
        return results;
    }
}
spring rest spring-boot spring-data-jpa completable-future
1个回答
0
投票

尝试从@Async方法中删除viewAll()注释

© www.soinside.com 2019 - 2024. All rights reserved.