当SpringMVC遇上响应式

242 阅读1分钟

遇上RxJava

@RestController
@RequestMapping(path = "/api/rxjava")
public class RxJavaController {

    @GetMapping(value = "/observable")
    public Observable<String> observableString() {
        return Observable.just("observable");
    }
    
}

遇上Reactor

@RestController
@RequestMapping(path = "/api/webflux")
public class WebFluxController {

    @GetMapping(value = "mono")
    public Mono<String> mono() {
        return Mono.just("mono");
    }

    @GetMapping(value = "flux")
    public Flux<String> flux() {
        return Flux.just("flux", "string");
    }
    
}

源码解析

主要看这两个类

  • ReactiveAdapterRegistry
  • ReactiveTypeHandler

总结

SpringMVC支持响应式了