Spring Webflux
本文介绍 spring-webflux
WebFlux is non-blocking, asynchronous web framework based on project Reactor.
Servlet API is synchronous (Filter, Servlet) or blocking(getParameter, getPart) which can not used directly in webFlux.
API
Mono
A Reactive Streams Publisher with basic rx operations that emits at most one item via onNext signal then terminates with onComplete signal, or only emits onError signal.
interface Publisher<T> {
    void subscribe(subscriber)
}
interface CorePublisher<T> extends Publisher {
    void subscribe(coreSubscriber)
}
interface Subscriber<T> {
    void onSubscribe(Subscription var1)
    void onNext(T var)
    void onError(Throwable var)
    void onComplete()
}
interface CoreSubscriber<T> extends Subscriber {
    Context currentContext()
    void onSubscribe(Subscription s)
}
interface Subscription {
    void request(long var)
    void cancel()
}
abstract class Mono<T> implements CorePublisher {
    cache()
    Mono<T> doOnCancel(onCancel)
    Mono<T> doOnNext(onNext)
    Mono<T> filter(tester)
    Flux<T> expand(expander)
    Mono<R> flatMap(transformer)
    Mono<Boolean> hasElement()
    Mono<T> onErrorComplete()
    Mono<T> retry()
    Disposable subscribe()
    Mono<V> then(Mono<V> other)
}
class Flux<T> implements CorePublisher {
}
Subscriber -left-> Publisher
Subscriber -right-> Subscription