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 Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    afterBodyRead(Object body, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)
    The default implementation returns the body that was passed in.
    org.springframework.http.HttpInputMessage
    beforeBodyRead(org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)
    The default implementation returns the InputMessage that was passed in.
    handleEmptyBody(Object body, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType)
    The default implementation returns the body that was passed in.

    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.servlet.mvc.method.annotation.RequestBodyAdvice

    supports
  • Constructor Details

    • RequestBodyAdviceAdapter

      public RequestBodyAdviceAdapter()
  • Method Details

    • beforeBodyRead

      public org.springframework.http.HttpInputMessage beforeBodyRead(org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.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, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.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, org.springframework.http.HttpInputMessage inputMessage, org.springframework.core.MethodParameter parameter, Type targetType, Class<? extends org.springframework.http.converter.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