title: Implement RequestBodyAdvice and ResponseBodyAdvice<T> in one class
body: <p>I want to access HTTP Request and response payload in one place of code. I try to implementing <em>RequestBodyAdvice</em> and <em>ResponseBodyAdvice</em> in separated classes and it worked fine, but in two separated places of code.
  Then I try to implement these two in one class but only methods of either <em>RequestBodyAdvice</em> or <em>ResponseBodyAdvice</em> invoked. for example in below code only <em>beforeBodyRead</em> and <em>afterBodyRead</em>(these are owned by <em>RequestBodyAdvice</em>) invoked;and it is strange for me that these two invoked two times for every request!(at the time that I implement these interfaces in separated classes every method invoked only once):</p>
  <pre><code>@ControllerAdvice
  public class CustomResponseBodyAdviceAdapter implements RequestBodyAdvice, ResponseBodyAdvice&lt;Object&gt;{
      public CustomResponseBodyAdviceAdapter() {
      }
      @Override
      public boolean supports(MethodParameter methodParameter,
                              Class&lt;? extends HttpMessageConverter&lt;?&gt;&gt; aClass) {
          return true;
      }
  
      @Override
      public Object beforeBodyWrite(Object o,
                                    MethodParameter methodParameter,
                                    MediaType mediaType,
                                    Class&lt;? extends HttpMessageConverter&lt;?&gt;&gt; aClass,
                                    ServerHttpRequest serverHttpRequest,
                                    ServerHttpResponse serverHttpResponse) {
          return o;
      }
  
      @Override
      public boolean supports(MethodParameter methodParameter, Type type, Class&lt;? extends HttpMessageConverter&lt;?&gt;&gt; aClass) {
          return true;
      }
  
      @Override
      public HttpInputMessage beforeBodyRead(HttpInputMessage httpInputMessage, MethodParameter methodParameter, Type type, Class&lt;? extends HttpMessageConverter&lt;?&gt;&gt; aClass) throws IOException {
          return httpInputMessage;
      }
  
      @Override
      public Object afterBodyRead(Object o, HttpInputMessage httpInputMessage, MethodParameter methodParameter, Type type, Class&lt;? extends HttpMessageConverter&lt;?&gt;&gt; aClass) {
          return o;
      }
  
      @Override
      public Object handleEmptyBody(Object o, HttpInputMessage httpInputMessage, MethodParameter methodParameter, Type type, Class&lt;? extends HttpMessageConverter&lt;?&gt;&gt; aClass) {
          return o;
      }
  }
  </code></pre>
  <p>I want to implement these two interfaces in one class in the way that all methods invoke correctly.</p>
  <p>Update: Spring boot version is <strong>2.0.1.RELEASE</strong></p>