## org.springframework.web.servlet.mvc.method.annotation
Class AbstractMessageConverterMethodArgumentResolver

    java.lang.Object
      org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver

All Implemented Interfaces:
  HandlerMethodArgumentResolver

Direct Known Subclasses:
  AbstractMessageConverterMethodProcessor, RequestPartMethodArgumentResolver

    public abstract class AbstractMessageConverterMethodArgumentResolver

extends Object
implements HandlerMethodArgumentResolver

A base class for resolving method argument values by reading from the body of a request with `HttpMessageConverter`s.

Since:
  3.1
Author:
  Arjen Poutsma, Rossen Stoyanchev

Field Summary
`protected List<MediaType>` `allSupportedMediaTypes`
`protected Log` `logger`
`protected List<HttpMessageConverter<?>>` `messageConverters`

Constructor Summary
`AbstractMessageConverterMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters)`

Method Summary
`protected ServletServerHttpRequest` `createInputMessage(NativeWebRequest webRequest)` Creates a new `HttpInputMessage` from the given `NativeWebRequest`.

`protected

`<T> Object`

`

`readWithMessageConverters(HttpInputMessage inputMessage, MethodParameter methodParam, Class<T> paramType)`
Creates the method argument value of the expected parameter type by reading from the given HttpInputMessage.

`protected

`<T> Object`

`

`readWithMessageConverters(NativeWebRequest webRequest, MethodParameter methodParam, Class<T> paramType)`
Creates the method argument value of the expected parameter type by reading from the given request.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.springframework.web.method.support.HandlerMethodArgumentResolver
`resolveArgument, supportsParameter`

Field Detail

### logger

    protected final Log logger

### messageConverters

    protected final List<HttpMessageConverter<?>> messageConverters

### allSupportedMediaTypes

    protected final List<MediaType> allSupportedMediaTypes

Constructor Detail

### AbstractMessageConverterMethodArgumentResolver

    public AbstractMessageConverterMethodArgumentResolver(List<HttpMessageConverter<?>> messageConverters)

Method Detail

### readWithMessageConverters

    protected <T> Object readWithMessageConverters(NativeWebRequest webRequest,
                                                   MethodParameter methodParam,
                                                   Class<T> paramType)
                                        throws IOException,
                                               HttpMediaTypeNotSupportedException

  Creates the method argument value of the expected parameter type by reading from the given request.

  Type Parameters:
    `T` - the expected type of the argument value to be created
  Parameters:
    `webRequest` - the current request
    `methodParam` - the method argument
    `paramType` - the type of the argument value to be created
  Returns:
    the created method argument value
  Throws:
    `IOException` - if the reading from the request fails
    `HttpMediaTypeNotSupportedException` - if no suitable message converter is found

### readWithMessageConverters

    protected <T> Object readWithMessageConverters(HttpInputMessage inputMessage,
                                                   MethodParameter methodParam,
                                                   Class<T> paramType)
                                        throws IOException,
                                               HttpMediaTypeNotSupportedException

  Creates the method argument value of the expected parameter type by reading from the given HttpInputMessage.

  Type Parameters:
    `T` - the expected type of the argument value to be created
  Parameters:
    `inputMessage` - the HTTP input message representing the current request
    `methodParam` - the method argument
    `paramType` - the type of the argument value to be created
  Returns:
    the created method argument value
  Throws:
    `IOException` - if the reading from the request fails
    `HttpMediaTypeNotSupportedException` - if no suitable message converter is found

### createInputMessage

    protected ServletServerHttpRequest createInputMessage(NativeWebRequest webRequest)

  Creates a new `HttpInputMessage` from the given `NativeWebRequest`.

  Parameters:
    `webRequest` - the web request to create an input message from
  Returns:
    the input message