WebFlux笔记

与SpringMVC在实现Controller时有较大差异,其他方面基本一致。

给TestRouter标注 RestController 注解并创建一下两个方法

映射方法
    @Bean
    public RouterFunction<ServerResponse> routers() {
        return RouterFunctions.route()
                .GET("/test", this::test).build();
    }
处理请求
  private Mono<ServerResponse> test(ServerRequest request) {
        //获取请求头
        Map<String, String> headers = request.headers()
                .asHttpHeaders()
                .toSingleValueMap();
        //获取restful的路径参数
        Map<String, String> map = request.pathVariables();
        String pathName = request.pathVariable("name");
        //获取路径参数
        MultiValueMap<String, String> params = request.queryParams();
        String name = request.queryParam("name").get();
        //获取并消费请求体
        User body = request.bodyToMono(User.class).block();
        //获取表单数据
        Mono<MultiValueMap<String, String>> formData = request.exchange().getFormData();
        //获取文件上传相关数据
        Mono<MultiValueMap<String, Part>> multipartData = request.exchange().getMultipartData();
        //获取Session
        Mono<WebSession> session = request.exchange().getSession();

        //消费body
        return request.bodyToMono(User.class)
                .flatMap(user -> ServerResponse.ok()
                        .bodyValue(user));
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值