@GetMapping public Flux<User> allUsers() { return userReactiveRepository.findAll(); }
@Override public void run(String... strings) throws Exception { userReactiveRepository.deleteAll(); userReactiveRepository.saveAll(sampleUsers()) .doOnComplete(() -> System.out.println("Count:"+userReactiveRepository.count().block())) .subscribe(); }
@DeleteMapping("/{id}") public Mono<Void> deleteUser(@PathVariable String id) { return userReactiveRepository.deleteById(id); } }
@GetMapping("/{id}") public Mono<User> getUser(@PathVariable String id) { return userReactiveRepository.findById(id); }
@PostMapping public Mono<User> saveUser(@RequestBody Mono<User> userMono) { //the following does NOT work //userMono.flatMap(user -> userReactiveRepository.save(user)); //the following works //userMono.flatMap(user -> userReactiveRepository.save(user)).subscribe(); return userMono.flatMap(user -> userReactiveRepository.save(user)); }
@Override public void run(String... strings) throws Exception { userReactiveRepository.deleteAll(); userReactiveRepository.saveAll(sampleUsers()) .doOnComplete(() -> System.out.println("Count:"+userReactiveRepository.count().block())) .subscribe(); }
@GetMapping("/list-users-chunked") public String listUsersChunked(Model model){ Flux<User> userFlux = this.userReactiveRepository.findAll().repeat(30000); model.addAttribute("users", userFlux); return "users"; }
public Mono<ServerResponse> deleteUser(ServerRequest request) { String id = request.pathVariable("id"); return ServerResponse.ok().build(userReactiveRepository.deleteById(id)); }
public Mono<ServerResponse> getUserById(ServerRequest request) { Mono<User> userMono = userReactiveRepository.findById(request.pathVariable("id")); Mono<ServerResponse> notFount = ServerResponse.notFound().build(); return userMono.flatMap(user -> ServerResponse.ok() .contentType(MediaType.APPLICATION_JSON_UTF8) .body(fromObject(user))) .switchIfEmpty(notFount); }
public Mono<ServerResponse> saveUser(ServerRequest request) { Mono<User> userMono = request.bodyToMono(User.class); Mono<User> mono = userMono.flatMap(user -> userReactiveRepository.save(user)); return ServerResponse.ok().body(mono, User.class); }
@GetMapping("/list-users") public String listUsers(Model model){ Flux<User> userFlux = this.userReactiveRepository.findAll().repeat(30000); List<User> userList = userFlux.collectList().block(); model.addAttribute("users", userList); return "users"; }
@GetMapping("/list-users-reactive") public String listUsersReactive(Model model){ Flux<User> userFlux = this.userReactiveRepository.findAll().repeat(30000); model.addAttribute("users", new ReactiveDataDriverContextVariable(userFlux, 1000)); return "users"; } }
public Mono<ServerResponse> getAllUsers(ServerRequest request) { Flux<User> allUsers = userReactiveRepository.findAll(); return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON_UTF8) .body(allUsers, User.class); }
public Mono<ServerResponse> listUsersChunked(ServerRequest request) { Flux<User> userFlux = userReactiveRepository.findAll().repeat(30000); Map<String,Object> data = new HashMap<>(); data.put("users", userFlux); return ServerResponse.ok().contentType(MediaType.TEXT_HTML).render("users", data); }
public Mono<ServerResponse> listUsers(ServerRequest request) { List<User> userList = userReactiveRepository.findAll().repeat(30000).collectList().block(); Map<String,Object> data = new HashMap<>(); data.put("users", userList); return ServerResponse.ok().contentType(MediaType.TEXT_HTML).render("users", data); }
public Mono<ServerResponse> listUsersReactive(ServerRequest request) { Flux<User> userFlux = userReactiveRepository.findAll().repeat(30000); ReactiveDataDriverContextVariable users = new ReactiveDataDriverContextVariable(userFlux, 1000); Map<String,Object> data = new HashMap<>(); data.put("users", users); return ServerResponse.ok().contentType(MediaType.TEXT_HTML).render("users", data); } }