spring-webflux函数式编程模式获取Post提交的Json格式数据

新手上路,请多包涵

问题描述

使用 Postman 发送Post请求

请求头:Content-Type : application/json

请求参数:{“hello”: “hello”,“name”: “zhangsan”}

System.out.println(body)时,打印出来的是 MonoOnErrorResume
body.subscribe()方法内的代码也不会执行

环境

Spring boot 2.1.5

相关代码

// RouterFunction
@Bean
public RouterFunction<ServerResponse> routerFunction() {
    return route(POST("/example/add").and(accept(APPLICATION_JSON)), exampleHandler::add);
}
public class ExampleHandler {
    public Mono<ServerResponse> add(ServerRequest serverRequest){
        Mono<Map> body = serverRequest.bodyToMono(Map.class);
        System.out.println(body);
        body.subscribe(ExampleHandler::println);
        return ServerResponse.status(HttpStatus.OK)
                .body(Mono.just("OK"), String.class);
    }
    
    private static void println(Object o) {
        String threadName = Thread.currentThread().getName();
        System.out.println("[ 线程: "+threadName + " ] "+ o);
    }
}

结果

MonoOnErrorResume

阅读 7.9k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题