我刚开始学习 webFlux。我刚开始学习 webplus,我对问题很感兴趣。将 completableFuture 与 CRUD 操作一起使用是否有意义?
也就是说,假设我有RestService
:
@RestController
@AllArgsConstructor
public class personController {
personServiceImpl personService;
@GetMapping("/all")
Flux<Person> getAllPerson(){
return personService.findAll();
}
@PostMapping("/save")
public Mono<Person> post(@RequestBody Person user) {
System.out.println("inside***************");
return personService.saveOrUpdate(user);
}
}
为处理请求提供这样的服务是否有意义?
personServiceImpl:
public class personServiceImpl implements personService{
personRepository repository;
@Override
public Mono<Person> saveOrUpdate(Person person) {
CompletableFuture<Person> future = CompletableFuture.supplyAsync(() -> {
repository.save(person);
return person;
});
return Mono.fromFuture(future);
}
@Override
public Mono<Person> findByEmail(String email) {
CompletableFuture<Person> future = CompletableFuture.supplyAsync(() -> {
Person person = repository.findByEmail(email);
return person;
});
return Mono.fromFuture(future);
}
}
或者只是没有 Future 的常规调用会更好?
public class personServiceImpl implements personService{
personRepository repository;
@Override
public Mono<Person> saveOrUpdate(Person person) {
return repository.save();
}
@Override
public Mono<Person> findByEmail(String email) {
return repository.findByEmail();
}
}
如果您能帮助我了解 Future 在这里是否有意义,我会很高兴。