WebHandler 와 Spring

Spring 이 WebHandler 의 구현체인 DispatcherHandler(front handler) 를

등록하는 과정을 알아보자.

 

 

spring boot autoconfigure 에서

자동 구성(Auto Configuration) 기능에 의해 동작하는 HttpHandlerAutoConfiguration 이다.

자동 구성 조건에 따라 HttpHandler 를 빈으로 등록하고 있는 것을 알 수 있다.

 

HttpHandlerAutoConfiguration 에서 HttpHandler 를 생성할 때 호출하는

WebHttpHandlerBuilder::applicationContext 메서드 코드의 일부이다.

Spring container 에서

WEB_HANDLER_BEAN_NAME("webHandler") 의 이름을 가지는 Bean 을 찾아서

builder 에 넣어준다.

또한, WebFilter, WebExceptionHandler 등도 실행 우선순위에 맞춰서 넣어주고 있는 것을 볼 수 있다.

 

따라서..

사용자는 WebHandler, WebFilter, WebExceptionHandler 등을 필요에 따라 Bean 으로 등록해주면,

자동으로 spring 이 등록된 빈들을 사용하여 서버까지 실행할 것임을 예상해 볼 수 있다.

 

참고.

사용자가 WebHandler 를 등록하려하면.. 

이미 등록되었다고 런타임 에러가 발생한다.

WebFluxConfigurationSupport 에서

WebHandler 의 구현체인 DispatcherHandler 를 Bean 으로 등록하고 있다.

 

결론

Spring 은 front handler 의 역할을 하는 DispatcherHandler 를 이미 등록하고 있기 때문에

사용자는 WebHandler 를 직접 등록할 필요가 없다.

필요에 따라, WebFilter, WebExceptionHandler 등은 등록해볼 수 있다.

 

'Spring Reactive Stack > Webflux' 카테고리의 다른 글

HttpHandler 생성과 동작  (0) 2024.03.15
WebHandler 와 Netty 의 관계  (0) 2024.03.09