Top Description Inners Constructors Methods
org.springframework.web.reactive.result.method.annotation

public Class RequestHeaderMethodArgumentResolver

extends AbstractNamedValueSyncArgumentResolver
Class Inheritance
Imports
java.util.List, .Map, org.springframework.beans.factory.config.ConfigurableBeanFactory, org.springframework.core.MethodParameter, .ReactiveAdapterRegistry, org.springframework.core.convert.ConversionService, org.springframework.lang.Nullable, org.springframework.util.Assert, org.springframework.web.bind.annotation.RequestHeader, org.springframework.web.server.MissingRequestValueException, .ServerWebExchange

Resolves method arguments annotated with @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.

Author
Rossen Stoyanchev
Since
5.0
See Also
RequestHeaderMapMethodArgumentResolver

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Constructor Summary

AccessConstructor and Description
public
RequestHeaderMethodArgumentResolver(ConfigurableBeanFactory
a bean factory to use for resolving ${...} placeholder and #{...} SpEL expressions in default values; or null if default values are not expected to have expressions
factory
,
ReactiveAdapterRegistry
for checking reactive type wrappers
registry
)

Create a new RequestHeaderMethodArgumentResolver instance.

Method Summary

Modifier and TypeMethod and Description
protected AbstractNamedValueArgumentResolver.NamedValueInfo
protected void
handleMissingValue(String
the name for the value
name
,
MethodParameter
the method parameter
parameter
)

Overrides org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.handleMissingValue.

Invoked when a named value is required, but resolveName(String, MethodParameter, ServerWebExchange) returned null and there is no default value.

protected Object
private boolean
singleParam(RequestHeader annotation, Class<?> type)

public boolean
supportsParameter(MethodParameter
the method parameter
param
)

Implements org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.supportsParameter.

Whether this resolver supports the given method parameter.

Inherited from org.springframework.web.reactive.result.method.annotation.AbstractNamedValueSyncArgumentResolver:
resolveArgumentresolveArgumentValueresolveName

Constructor Detail

RequestHeaderMethodArgumentResolverback to summary
public RequestHeaderMethodArgumentResolver(ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry)

Create a new RequestHeaderMethodArgumentResolver instance.

Parameters
factory:ConfigurableBeanFactory

a bean factory to use for resolving ${...} placeholder and #{...} SpEL expressions in default values; or null if default values are not expected to have expressions

registry:ReactiveAdapterRegistry

for checking reactive type wrappers

Method Detail

createNamedValueInfoback to summary
protected AbstractNamedValueArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)

Implements abstract org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.createNamedValueInfo.

Doc from org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.createNamedValueInfo.

Create the NamedValueInfo object for the given method parameter. Implementations typically retrieve the method annotation by means of MethodParameter#getParameterAnnotation(Class).

Parameters
parameter:MethodParameter

the method parameter

Returns:AbstractNamedValueArgumentResolver.NamedValueInfo

the named value information

Annotations
@Override
handleMissingValueback to summary
protected void handleMissingValue(String name, MethodParameter parameter)

Overrides org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.handleMissingValue.

Doc from org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.handleMissingValue.

Invoked when a named value is required, but resolveName(String, MethodParameter, ServerWebExchange) returned null and there is no default value. Subclasses typically throw an exception in this case.

Parameters
name:String

the name for the value

parameter:MethodParameter

the method parameter

Annotations
@Override
resolveNamedValueback to summary
protected Object resolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange)

Implements abstract org.springframework.web.reactive.result.method.annotation.AbstractNamedValueSyncArgumentResolver.resolveNamedValue.

Doc from org.springframework.web.reactive.result.method.annotation.AbstractNamedValueSyncArgumentResolver.resolveNamedValue.

Actually resolve the value synchronously.

Annotations
@Override
singleParamback to summary
private boolean singleParam(RequestHeader annotation, Class<?> type)
supportsParameterback to summary
public boolean supportsParameter(MethodParameter param)

Implements org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.supportsParameter.

Doc from org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.supportsParameter.

Whether this resolver supports the given method parameter.

Parameters
param:MethodParameter

the method parameter

Annotations
@Override
org.springframework.web.reactive.result.method.annotation back to summary

private final Class RequestHeaderMethodArgumentResolver.RequestHeaderNamedValueInfo

extends NamedValueInfo
Class Inheritance

Constructor Summary

AccessConstructor and Description
private

Constructor Detail

RequestHeaderNamedValueInfoback to summary
private RequestHeaderNamedValueInfo(RequestHeader annotation)