异步处理查询结果

Spring Data repository中的查询可以异步执行,参考Spring执行异步方法。这意味着方法可以在被调用时立刻返回,而真正的查询执行会被当做一个任务提交到Spring的TaskExecutor。

@Async
Future<User> findByFirstname(String firstname); //1              

@Async
CompletableFuture<User> findOneByFirstname(String firstname); //2

@Async
ListenableFuture<User> findOneByLastname(String lastname); //3 

1.使用java.util.concurrent.Future作为返回类型。
2.使用Java 8中的java.util.concurrent.CompletableFuture作为返回类型。
3.使用org.springframework.util.concurrent.ListenableFuture作为返回类型