public class DispatcherHandler extends Object implements WebHandler, PreFlightRequestHandler, ApplicationContextAware
DispatcherHandler
discovers the delegate components it needs from
Spring configuration. It detects the following in the application context:
HandlerMapping
-- map requests to handler objects
HandlerAdapter
-- for using any handler interface
HandlerResultHandler
-- process handler return values
DispatcherHandler
is also designed to be a Spring bean itself and
implements ApplicationContextAware
for access to the context it runs
in. If DispatcherHandler
is declared as a bean with the name
"webHandler", it is discovered by
WebHttpHandlerBuilder.applicationContext(ApplicationContext)
which
puts together a processing chain together with WebFilter
,
WebExceptionHandler
and others.
A DispatcherHandler
bean declaration is included in
@EnableWebFlux
configuration.
WebHttpHandlerBuilder.applicationContext(ApplicationContext)
Constructor and Description |
---|
DispatcherHandler()
Create a new
DispatcherHandler which needs to be configured with
an ApplicationContext through setApplicationContext(org.springframework.context.ApplicationContext) . |
DispatcherHandler(ApplicationContext applicationContext)
Create a new
DispatcherHandler for the given ApplicationContext . |
Modifier and Type | Method and Description |
---|---|
List<HandlerMapping> |
getHandlerMappings()
|
reactor.core.publisher.Mono<Void> |
handle(ServerWebExchange exchange)
Handle the web server exchange.
|
reactor.core.publisher.Mono<Void> |
handlePreFlight(ServerWebExchange exchange)
Handle a pre-flight request by finding and applying the CORS configuration
that matches the expected actual request.
|
protected void |
initStrategies(ApplicationContext context) |
void |
setApplicationContext(ApplicationContext applicationContext)
Set the ApplicationContext that this object runs in.
|
public DispatcherHandler()
DispatcherHandler
which needs to be configured with
an ApplicationContext
through setApplicationContext(org.springframework.context.ApplicationContext)
.public DispatcherHandler(ApplicationContext applicationContext)
DispatcherHandler
for the given ApplicationContext
.applicationContext
- the application context to find the handler beans in@Nullable public final List<HandlerMapping> getHandlerMappings()
HandlerMapping
beans detected by type in the
injected context
and also
sorted
.
Note: This method may return null
if invoked
prior to setApplicationContext(ApplicationContext)
.
null
public void setApplicationContext(ApplicationContext applicationContext)
ApplicationContextAware
Invoked after population of normal bean properties but before an init callback such
as InitializingBean.afterPropertiesSet()
or a custom init-method. Invoked after ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
,
ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
and
MessageSourceAware
, if applicable.
setApplicationContext
in interface ApplicationContextAware
applicationContext
- the ApplicationContext object to be used by this objectBeanInitializationException
protected void initStrategies(ApplicationContext context)
public reactor.core.publisher.Mono<Void> handle(ServerWebExchange exchange)
WebHandler
handle
in interface WebHandler
exchange
- the current server exchangeMono<Void>
to indicate when request handling is completepublic reactor.core.publisher.Mono<Void> handlePreFlight(ServerWebExchange exchange)
PreFlightRequestHandler
HttpStatus.FORBIDDEN
.handlePreFlight
in interface PreFlightRequestHandler
exchange
- the exchange for the request