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> 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> 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); } }
@Bean RouterFunction<ServerResponse> routes() { return route(GET("/api/v1/messages"), request -> ok().contentType(request.headers() .accept() .contains(TEXT_EVENT_STREAM) ? TEXT_EVENT_STREAM : APPLICATION_STREAM_JSON) .body(Flux.zip( Flux.interval(Duration.ofSeconds(1)), messages.findAll()) .map(Tuple2::getT2) .share(), Message.class)) .andRoute(POST("/api/v1/messages"), request -> ok().contentType(APPLICATION_JSON) .body(request.bodyToMono(Message.class) .flatMap(messages::save), Message.class)) .andRoute(GET("/"), request -> ok().render("index", Rendering.view("index") .modelAttribute("name", "Max") .build() .modelAttributes()) ); }
@Bean public RouterFunction<ServerResponse> indexRouterFunction() { return route(GET("/"), request -> ok().contentType(TEXT_HTML).render("index")); }