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(ConversionService conversionService, ConfigurableBeanFactory beanFactory)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected AbstractNamedValueMethodArgumentResolver.NamedValueInfo` | `createNamedValueInfo(MethodParameter parameter)` Create the `AbstractNamedValueMethodArgumentResolver.NamedValueInfo` object for the given method parameter.
    `protected void` | `handleMissingValue(String headerName, 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(MethodParameter parameter, Message<?> message, String name)` Resolves the given parameter type and value name into an argument value.
    `boolean` | `supportsParameter(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(ConversionService conversionService,
                                              @Nullable
                                              ConfigurableBeanFactory beanFactory)

  - ### Method Detail

    - #### supportsParameter

          public boolean supportsParameter(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(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(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,
                                            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. Subclasses 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