public class RequestHeaderMethodArgumentResolver extends AbstractNamedValueSyncArgumentResolver
@RequestHeader
except for
Map
arguments. See RequestHeaderMapMethodArgumentResolver
for
details on Map
arguments annotated with @RequestHeader
.
An @RequestHeader
is a named value resolved from a request header.
It has a required flag and a default value to fall back on when the request
header does not exist.
A ConversionService
is invoked to apply type conversion to resolved
request header values that don't yet match the method parameter type.
RequestHeaderMapMethodArgumentResolver
AbstractNamedValueArgumentResolver.NamedValueInfo
logger
Constructor and Description |
---|
RequestHeaderMethodArgumentResolver(ConfigurableBeanFactory factory,
ReactiveAdapterRegistry registry)
Create a new
RequestHeaderMethodArgumentResolver instance. |
Modifier and Type | Method and Description |
---|---|
protected AbstractNamedValueArgumentResolver.NamedValueInfo |
createNamedValueInfo(MethodParameter parameter)
Create the
AbstractNamedValueArgumentResolver.NamedValueInfo object for the given method parameter. |
protected void |
handleMissingValue(String name,
MethodParameter parameter)
Invoked when a named value is required, but
AbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange) returned
null and there is no default value. |
protected Object |
resolveNamedValue(String name,
MethodParameter parameter,
ServerWebExchange exchange)
Actually resolve the value synchronously.
|
boolean |
supportsParameter(MethodParameter param)
Whether this resolver supports the given method parameter.
|
resolveArgument, resolveArgumentValue, resolveName
handleMissingValue, handleResolvedValue
checkAnnotatedParamNoReactiveWrapper, checkParameterType, checkParameterTypeNoReactiveWrapper, getAdapterRegistry
public RequestHeaderMethodArgumentResolver(@Nullable ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry)
RequestHeaderMethodArgumentResolver
instance.factory
- a bean factory to use for resolving ${...}
placeholder and #{...}
SpEL expressions in default values;
or null
if default values are not expected to have expressionsregistry
- for checking reactive type wrapperspublic boolean supportsParameter(MethodParameter param)
HandlerMethodArgumentResolver
param
- the method parameterprotected AbstractNamedValueArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
AbstractNamedValueArgumentResolver
AbstractNamedValueArgumentResolver.NamedValueInfo
object for the given method parameter.
Implementations typically retrieve the method annotation by means of
MethodParameter.getParameterAnnotation(Class)
.createNamedValueInfo
in class AbstractNamedValueArgumentResolver
parameter
- the method parameterprotected Object resolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange)
AbstractNamedValueSyncArgumentResolver
resolveNamedValue
in class AbstractNamedValueSyncArgumentResolver
protected void handleMissingValue(String name, MethodParameter parameter)
AbstractNamedValueArgumentResolver
AbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange)
returned
null
and there is no default value. Subclasses typically throw an
exception in this case.handleMissingValue
in class AbstractNamedValueArgumentResolver
name
- the name for the valueparameter
- the method parameter