Interface HandlerAdapter
- All Known Implementing Classes:
- HandlerFunctionAdapter, RequestMappingHandlerAdapter, SimpleHandlerAdapter, WebSocketHandlerAdapter
public interface HandlerAdapter
Contract to abstract the details of invoking a handler of a given type.
An implementation can also choose to be an instance of
DispatchExceptionHandler if it wants to handle exceptions that occur
before the request is successfully mapped to a handler. This allows a
HandlerAdapter to expose the same exception handling both for handler
invocation errors and for errors before a handler is selected.
In Reactive Streams terms, handle(ServerWebExchange, Object) handles the onNext signal, while
DispatchExceptionHandler.handleError(ServerWebExchange, Throwable) handles the onError signal
from the dispatch processing chain.
- Since:
- 5.0
- Author:
- Rossen Stoyanchev, Sebastien Deleuze
- 
Method SummaryModifier and TypeMethodDescriptionreactor.core.publisher.Mono<HandlerResult> handle(ServerWebExchange exchange, Object handler) Handle the request with the given handler, previously checked viasupports(Object).booleanWhether thisHandlerAdaptersupports the givenhandler.
- 
Method Details- 
supportsWhether thisHandlerAdaptersupports the givenhandler.- Parameters:
- handler- the handler object to check
- Returns:
- whether the handler is supported
 
- 
handleHandle the request with the given handler, previously checked viasupports(Object).Implementations should consider the following for exception handling: - Handle invocation exceptions within this method.
- Set an exception handleron the returned- HandlerResultto handle deferred exceptions from asynchronous return values, and to handle exceptions from response rendering.
- Implement DispatchExceptionHandlerto extend exception handling to exceptions that occur before a handler is selected.
 - Parameters:
- exchange- current server exchange
- handler- the selected handler which must have been previously checked via- supports(Object)
- Returns:
- Monothat emits a- HandlerResult, or completes empty if the request is fully handled; any error signal would not be handled within the- DispatcherHandler, and would instead be processed by the chain of registered- WebExceptionHandlers at the end of the- WebFilterchain
 
 
-