1.首先写一个获取返回值的类

import javax.servlet.ServletOutputStream;
import javax.servlet.WriteListener;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * @Author Jack
 * @Date 2019/2/11 9:58
 * @Version 1.0.0
 */
public class ResponseWrapper extends HttpServletResponseWrapper {


    private ByteArrayOutputStream buffer;

    private ServletOutputStream out;

    private PrintWriter writer;


    public ResponseWrapper(HttpServletResponse response) throws IOException{
        super(response);
        buffer = new ByteArrayOutputStream();
        out = new WapperedOutputStream(buffer);
        writer = new PrintWriter(new OutputStreamWriter(buffer, StandardCharsets.UTF_8));
    }

    //重载父类获取outputstream的方法
    @Override
    public ServletOutputStream getOutputStream() throws IOException {
        return out;
    }

    @Override
    public PrintWriter getWriter() throws IOException {
        return writer;
    }

    @Override
    public void flushBuffer() throws IOException {
        if (out != null) {
            out.flush();
        }
        if (writer != null) {
            writer.flush();
        }
    }

    @Override
    public void reset() {
        buffer.reset();
    }

    public String getResponseData(String charset) throws IOException {
        flushBuffer();//将out、writer中的数据强制输出到WapperedResponse的buffer里面,否则取不到数据
        byte[] bytes = buffer.toByteArray();
        return new String(bytes, charset);

    }


    //内部类,对ServletOutputStream进行包装,指定输出流的输出端

    private class WapperedOutputStream extends ServletOutputStream {

        private ByteArrayOutputStream bos;

        public WapperedOutputStream(ByteArrayOutputStream stream) throws IOException {
            bos = stream;
        }

        //将指定字节写入输出流bos
        @Override
        public void write(int b) throws IOException {
            bos.write(b);
        }

        @Override
        public boolean isReady() {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public void setWriteListener(WriteListener listener) {
            // TODO Auto-generated method stub

        }
    }


}

2.然后写一个过滤器类

import cn.scaiglobal.attendance.util.FastJsonUtils;
import cn.scaiglobal.attendance.util.ResponseWrapper;
import org.springframework.stereotype.Component;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

/**
 * @Author Jack
 * @Date 2019/2/2 10:04
 * @Version 1.0.0
 */
@WebFilter(filterName = "myFilter", urlPatterns = "/**")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("过滤器初始化");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("过滤器处理");
        ResponseWrapper wrapper = new ResponseWrapper((HttpServletResponse) servletResponse);
        //里面的是wrapper
        filterChain.doFilter(servletRequest, wrapper);
        String result = wrapper.getResponseData(servletResponse.getCharacterEncoding());
        System.out.println("===返回值====" + result);
          //对result进行一些处理(比如先把json字符串转换为map,然后进行修改,再转换为json字符串)
        servletResponse.getOutputStream().write(result.getBytes());

    }

    @Override
    public void destroy() {
        System.out.println("过滤器销毁");
    }
}

此外,要使过滤器生效,在Spring Boot的启动类上面加上注解@ServletComponentScan(basePackages = {"xx.xxxx.xxx.filter"})