行星意识 2022-05-18 13:15 采纳率: 75%
浏览 367
已结题

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

  • 写回答

1条回答 默认 最新

  • 编号灬9527 2022-05-18 13:59
    关注
      • 难道源码只看构造器啊?
        getInputStream返回的是自己定义的ContentCachingInputStream

        img


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

        img


        所以后面你只要从ByteArrayOutputStream获取独到的流就行了
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月26日
  • 已采纳回答 5月18日
  • 修改了问题 5月18日
  • 创建了问题 5月18日