org.springframework.messaging.handler.annotation.support

## Class HeaderMethodArgumentResolver

- java.lang.Object
- - org.springframework.messaging.handler.annotation.support.AbstractNamedValueMethodArgumentResolver
  - - org.springframework.messaging.handler.annotation.support.HeaderMethodArgumentResolver

All Implemented Interfaces:
  HandlerMethodArgumentResolver

    public class HeaderMethodArgumentResolver
    extends AbstractNamedValueMethodArgumentResolver

Resolver for `@Header` arguments. Headers are resolved from either the top-level header map or the nested `native` header map.

Since:
  4.0
Author:
  Rossen Stoyanchev
See Also:
  `HeadersMethodArgumentResolver`, `NativeMessageHeaderAccessor`

### Nested Class Summary

### Nested classes/interfaces inherited from class org.springframework.messaging.handler.annotation.support.AbstractNamedValueMethodArgumentResolver

`AbstractNamedValueMethodArgumentResolver.NamedValueInfo`

### Constructor Summary

Constructors
Constructor and Description
`HeaderMethodArgumentResolver(org.springframework.core.convert.ConversionService conversionService, org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo` `createNamedValueInfo(org.springframework.core.MethodParameter parameter)` Create the `AbstractNamedValueMethodArgumentResolver.NamedValueInfo` object for the given method parameter.
`protected void` `handleMissingValue(String headerName, org.springframework.core.MethodParameter parameter, Message<?> message)` Invoked when a value is required, but `AbstractNamedValueMethodArgumentResolver.resolveArgumentInternal(org.springframework.core.MethodParameter, org.springframework.messaging.Message<?>, java.lang.String)` returned `null` and there is no default value.
`protected Object` `resolveArgumentInternal(org.springframework.core.MethodParameter parameter, Message<?> message, String name)` Resolves the given parameter type and value name into an argument value.
`boolean` `supportsParameter(org.springframework.core.MethodParameter parameter)` Whether the given method parameter is supported by this resolver.

### Methods inherited from class org.springframework.messaging.handler.annotation.support.AbstractNamedValueMethodArgumentResolver

`handleResolvedValue, resolveArgument`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### HeaderMethodArgumentResolver

    public HeaderMethodArgumentResolver(org.springframework.core.convert.ConversionService conversionService,
                                        @Nullable
                                        org.springframework.beans.factory.config.ConfigurableBeanFactory beanFactory)

### Method Detail

#### supportsParameter

    public boolean supportsParameter(org.springframework.core.MethodParameter parameter)

Description copied from interface: `HandlerMethodArgumentResolver`
Whether the given method parameter is supported by this resolver.

Parameters:
  `parameter` - the method parameter to check
Returns:
  `true` if this resolver supports the supplied parameter; `false` otherwise

#### createNamedValueInfo

    protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(org.springframework.core.MethodParameter parameter)

Description copied from class: `AbstractNamedValueMethodArgumentResolver`
Create the `AbstractNamedValueMethodArgumentResolver.NamedValueInfo` object for the given method parameter. Implementations typically retrieve the method annotation by means of `MethodParameter.getParameterAnnotation(Class)`.

Specified by:
  `createNamedValueInfo` in class `AbstractNamedValueMethodArgumentResolver`
Parameters:
  `parameter` - the method parameter
Returns:
  the named value information

#### resolveArgumentInternal

    @Nullable
    protected Object resolveArgumentInternal(org.springframework.core.MethodParameter parameter,
                                                       Message<?> message,
                                                       String name)
                                                throws Exception

Description copied from class: `AbstractNamedValueMethodArgumentResolver`
Resolves the given parameter type and value name into an argument value.

Specified by:
  `resolveArgumentInternal` in class `AbstractNamedValueMethodArgumentResolver`
Parameters:
  `parameter` - the method parameter to resolve to an argument value
  `message` - the current request
  `name` - the name of the value being resolved
Returns:
  the resolved argument. May be `null`
Throws:
  `Exception` - in case of errors

#### handleMissingValue

    protected void handleMissingValue(String headerName,
                                      org.springframework.core.MethodParameter parameter,
                                      Message<?> message)

Description copied from class: `AbstractNamedValueMethodArgumentResolver`
Invoked when a value is required, but `AbstractNamedValueMethodArgumentResolver.resolveArgumentInternal(org.springframework.core.MethodParameter, org.springframework.messaging.Message<?>, java.lang.String)` returned `null` and there is no default value. Sub-classes can throw an appropriate exception for this case.

Specified by:
  `handleMissingValue` in class `AbstractNamedValueMethodArgumentResolver`
Parameters:
  `headerName` - the name for the value
  `parameter` - the target method parameter
  `message` - the message being processed