Class RequestBodyAdviceAdapter

java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdviceAdapter
All Implemented Interfaces:
RequestBodyAdvice
Direct Known Subclasses:
JsonViewRequestBodyAdvice

public abstract class RequestBodyAdviceAdapter extends Object implements RequestBodyAdvice
A convenient starting point for implementing RequestBodyAdvice with default method implementations.

Subclasses are required to implement RequestBodyAdvice.supports(org.springframework.core.MethodParameter, java.lang.reflect.Type, java.lang.Class<? extends org.springframework.http.converter.HttpMessageConverter<?>>) to return true depending on when the advice applies.

Since:
4.2
Author:
Rossen Stoyanchev
  • Constructor Details

    • RequestBodyAdviceAdapter

      public RequestBodyAdviceAdapter()
  • Method Details

    • beforeBodyRead

      public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) throws IOException
      The default implementation returns the InputMessage that was passed in.
      Specified by:
      beforeBodyRead in interface RequestBodyAdvice
      Parameters:
      inputMessage - the request
      parameter - the target method parameter
      targetType - the target type, not necessarily the same as the method parameter type, e.g. for HttpEntity<String>.
      converterType - the converter used to deserialize the body
      Returns:
      the input request or a new instance (never null)
      Throws:
      IOException
    • afterBodyRead

      public Object afterBodyRead(Object body, HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType)
      The default implementation returns the body that was passed in.
      Specified by:
      afterBodyRead in interface RequestBodyAdvice
      Parameters:
      body - set to the converter Object before the first advice is called
      inputMessage - the request
      parameter - the target method parameter
      targetType - the target type, not necessarily the same as the method parameter type, e.g. for HttpEntity<String>.
      converterType - the converter used to deserialize the body
      Returns:
      the same body or a new instance
    • handleEmptyBody

      @Nullable public Object handleEmptyBody(@Nullable Object body, HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType)
      The default implementation returns the body that was passed in.
      Specified by:
      handleEmptyBody in interface RequestBodyAdvice
      Parameters:
      body - usually set to null before the first advice is called
      inputMessage - the request
      parameter - the method parameter
      targetType - the target type, not necessarily the same as the method parameter type, e.g. for HttpEntity<String>.
      converterType - the selected converter type
      Returns:
      the value to use, or null which may then raise an HttpMessageNotReadableException if the argument is required