spring boot对响应数据进行封装、改变响应头

背景

在项目中需求,对所有的请求进行拦截进行统一处理。优先想到的是使用spring boot的拦截器。但经实践发现,spring boot的拦截器只能在preHandle设置响应头,而在postHandle中没法改变响应头,也就无法实现按处理结果来设置响应头的目的,经查询资料,了解到拦截器无法设置带有@RequestBody注解的controller中的响应数据。具体细节有待深入研究。

之后的解决方法

扩展了ResponseBodyAdvice接口,并用@ControllerAdvice进行注解。最终实现了达到了封装响应数据、修改响应头的目的。代码如下:

@ControllerAdvice
public TestAdvice implements ResponseBodyAdvice<Object> {
    @Override
    public boolean supports(参数省略) {
        return true;
     }
     @Override
      public Object beforeBodyWrite(参数省略) {
          //这里面进行修改body、或者response header
      }
}

细节没写,仅做记录,以后用到时可查。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容