Controller模式服务

SpringWebFlux中,用于处理Web服务的控制器写法和SpringMVC是一样的,唯一的不同是控制器方法返回的是Flux或Mono。这篇笔记我们简单介绍SpringWebFlux中控制器的用法。

下面例子代码中,我们的DemoController接收GET请求,返回了一个JSON响应。

package com.gacfox.demo.controller;

import com.gacfox.demo.model.Student;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Mono;

@RestController
public class DemoController {
    @GetMapping(value = "/getStudent")
    public Mono<Student> getStudent() {
        Student s = Student.builder()
                .studentId("001").name("Tom").age(18).score("A")
                .build();
        return Mono.just(s);
    }
}

虽然写法和SpringMVC类似,但实际上处理流程却大不相同。SpringWebFlux返回的是响应式对象,内部具体执行异步逻辑时会分派到其它的线程,而不会阻塞HTTP处理线程,这样提高了服务器的并发响应能力。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap