ContentCachingRequestWrapper缓存 Request中的数据到底是如何做到的?

我的疑问来自这篇文章 https://www.cnblogs.com/Sinte-Beuve/p/13260249.html#%E6%9C%80%E4%BD%B3%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88 AOP的after方法无法二次读取取到inputStream,于是加了拦截器,先用ContentCachingRequestWrapper缓存一下,但是我去看ContentCachingRequestWrapper的源码,没看到构造里面有缓存的痕迹。。

img

    • 难道源码只看构造器啊?
      getInputStream返回的是自己定义的ContentCachingInputStream

      img


      在读取流的地方,读完以后ByteArrayOutputStream写入了读取结果

      img


      所以后面你只要从ByteArrayOutputStream获取独到的流就行了