如何为 RestController 启用 GZIP?

How to enable GZIP for RestController?

我有一个使用 spring 的简单 REST 控制器。 如何启用返回的 application/xml 流的 GZIP 响应?

@RestController
public class MyRest {
    @RequestMapping(method = RequestMethod.GET,
            produces = MediaType.APPLICATION_XML_VALUE)
    @ResponseBody
    public ComplexRsp test() {
        //...
    }
}

当使用 soap+wsdl 方法时,服务 class 上会有简单的 @GZIP 注释。我怎样才能为 REST 实现同样的目标?

如果您正在使用 Spring 引导和 Tomcat 您应该能够通过 Tomcat 配置来完成此操作: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#how-to-enable-http-response-compression

这里有一个类似的POSTUsing GZIP compression with Spring Boot/MVC/JavaConfig with RESTful

就这么简单:

server.compression.enabled=true
server.compression.mime-types=application/xml