β’
WebFlux λ ν¬κ² λ λΆλΆμΌλ‘ ꡬμ±λλ€.
β¦
publisher μμ± λΆλΆ
β¦
publisher subscribe λΆλΆ
β’
μ΄ λ λΆλΆμ reactor.netty.http.server ν¨ν€μ§μ HttpServer$onStateChange λ©μλμμ μ€νλλ€.
β¦
Publisher<Void> publisher = (Publisher)this.handler.apply(ops, ops);
β¦
mono.subscribe(ops.disposeSubscriber());
HttpWebHandlerAdapter
β’
publisher μμ± ν΅μ¬ ν΄λμ€
β’
handle νΈμΆλλ κ³Όμ
β¦
this.handler.apply(ops, ops) β ReactorHttpHandlerAdapter$apply νΈμΆ
βͺ
ReactorHttpHandlerAdapter μμλ request μ response λ₯Ό μμ±
ReactorServerHttpRequest request = new ReactorServerHttpRequest(reactorRequest, bufferFactory);
ServerHttpResponse response = new ReactorServerHttpResponse(reactorResponse, bufferFactory);
JavaScript
볡μ¬
β¦
this.httpHandler.handle(request, response) β WebServerManager$DelayedInitializationHttpHandler$handle νΈμΆ
β¦
this.delegate.handle(request, response) β HttpWebHandlerAdapter$handle νΈμΆ
β’
exchange μμ±
ServerWebExchange exchange = this.createExchange(request, response);
JavaScript
볡μ¬
β’
ExceptionHandlingWebFilter, FilteringWebHandler β extends WebHandlerDecorator
β’
DefaultWebFilterChain$filter μμ Mono.defer(() β {}) λ‘ Mono defer λ₯Ό λ§λ λ€.
DispatcherHandler
β’
subscribe ν΅μ¬ ν΄λμ€
β’
subscribe νλ©΄ DefaultWebFilterChain$filter {} μμ handler.handle() λ‘ DispatcherHandler κ° νΈμΆλ¨.