Class RequestHeaderMethodArgumentResolver
- java.lang.Object
- org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
- org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
- org.springframework.web.reactive.result.method.annotation.AbstractNamedValueSyncArgumentResolver
- org.springframework.web.reactive.result.method.annotation.RequestHeaderMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver,SyncHandlerMethodArgumentResolver
public class RequestHeaderMethodArgumentResolver extends AbstractNamedValueSyncArgumentResolver
Resolves method arguments annotated with@RequestHeaderexcept forMaparguments. SeeRequestHeaderMapMethodArgumentResolverfor details onMaparguments annotated with@RequestHeader.An
@RequestHeaderis 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
ConversionServiceis invoked to apply type conversion to resolved request header values that don't yet match the method parameter type.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
- See Also:
RequestHeaderMapMethodArgumentResolver
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
AbstractNamedValueArgumentResolver.NamedValueInfo
Field Summary
Fields inherited from class org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
logger
Constructor Summary
Constructors Constructor Description RequestHeaderMethodArgumentResolver(ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry)Create a newRequestHeaderMethodArgumentResolverinstance.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AbstractNamedValueArgumentResolver.NamedValueInfocreateNamedValueInfo(MethodParameter parameter)Create theAbstractNamedValueArgumentResolver.NamedValueInfoobject for the given method parameter.protected voidhandleMissingValue(String name, MethodParameter parameter)Invoked when a named value is required, butAbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange)returnednulland there is no default value.protected ObjectresolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange)Actually resolve the value synchronously.booleansupportsParameter(MethodParameter param)Whether this resolver supports the given method parameter.Methods inherited from class org.springframework.web.reactive.result.method.annotation.AbstractNamedValueSyncArgumentResolver
resolveArgument, resolveArgumentValue, resolveName
Methods inherited from class org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
handleMissingValue, handleResolvedValue
Methods inherited from class org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
checkAnnotatedParamNoReactiveWrapper, checkParameterType, checkParameterTypeNoReactiveWrapper, getAdapterRegistry
Constructor Detail
RequestHeaderMethodArgumentResolver
public RequestHeaderMethodArgumentResolver(@Nullable ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry)
Create a newRequestHeaderMethodArgumentResolverinstance.- Parameters:
factory- a bean factory to use for resolving${...}placeholder and#{...}SpEL expressions in default values; ornullif default values are not expected to have expressionsregistry- for checking reactive type wrappers
Method Detail
supportsParameter
public boolean supportsParameter(MethodParameter param)
Description copied from interface:HandlerMethodArgumentResolverWhether this resolver supports the given method parameter.- Parameters:
param- the method parameter
createNamedValueInfo
protected AbstractNamedValueArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
Description copied from class:AbstractNamedValueArgumentResolverCreate theAbstractNamedValueArgumentResolver.NamedValueInfoobject for the given method parameter. Implementations typically retrieve the method annotation by means ofMethodParameter.getParameterAnnotation(Class).- Specified by:
createNamedValueInfoin classAbstractNamedValueArgumentResolver- Parameters:
parameter- the method parameter- Returns:
- the named value information
resolveNamedValue
protected Object resolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange)
Description copied from class:AbstractNamedValueSyncArgumentResolverActually resolve the value synchronously.- Specified by:
resolveNamedValuein classAbstractNamedValueSyncArgumentResolver
handleMissingValue
protected void handleMissingValue(String name, MethodParameter parameter)
Description copied from class:AbstractNamedValueArgumentResolverInvoked when a named value is required, butAbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange)returnednulland there is no default value. Subclasses typically throw an exception in this case.- Overrides:
handleMissingValuein classAbstractNamedValueArgumentResolver- Parameters:
name- the name for the valueparameter- the method parameter