项目里面计划把所有的response打印出来。开始觉得很简单,只要使用一个responseWrapper 把response包装一下就可以了。
开始计划按照项目中的RequestWrapper写一个出来。写的时候发现没有什么头绪,跟request还是很不一样的。
然后找了一下ResponseWrapper 的实现类。然后在spring里面的jar包里面找到ContentCachingResponseWrapper,感觉就是我想要的东西。
用了一下,发现结果的respoinse内容变没了,又搜了一下用法,发现需要在filer 最后调用这个方法。
responseWrapper.copyBodyToResponse();
但是试了一下还是不行。
最后试了很多方法,有些方法可以有返回值,有些没有。并没有什么规律。debug了一天最后也没有找到原因。
最后自己实现了一个ResponseWrapper 重写了。
@Override
public void flushBuffer() throws IOException {
getResponse().flushBuffer();
}
所有的方法就有返回值了。
自己怀疑是因为使用了Spring security,添加了一些filter导致的。
环境是
spring-boot: 1.5.10.RELEASE
spring-security: 4.2.5.RELEASE