El resto de estas respuestas están desactualizadas y / o son demasiado complicadas para algo que debería ser simple IMO (¿cuánto tiempo ha existido gzip por ahora? Más que Java ...) De los documentos:
En application.properties 1.3+
# 🗜️🗜️🗜️
server.compression.enabled=true
# opt in to content types
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain,application/javascript,text/css
# not worth the CPU cycles at some point, probably
server.compression.min-response-size=10240
En application.properties 1.2.2 - <1.3
server.tomcat.compression=on
server.tomcat.compressableMimeTypes=application/json,application/xml,text/html,text/xml,text/plain,application/javascript,text/css
Mayor que 1.2.2:
@Component
public class TomcatCustomizer implements TomcatConnectorCustomizer {
@Override
public void customize(Connector connector) {
connector.setProperty("compression", "on");
// Add json and xml mime types, as they're not in the mimetype list by default
connector.setProperty("compressableMimeType", "text/html,text/xml,text/plain,application/json,application/xml");
}
}
También tenga en cuenta que esto SOLO funcionará si está ejecutando tomcat integrado:
Si planea implementar en un Tomcat no integrado, tendrá que habilitarlo en server.xml http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_Implementation
Nota de producción de IRL:
Además, para evitar todo esto, considere usar una configuración de balanceador de carga / proxy frente a Tomcat con nginx y / o haproxy o similar, ya que manejará activos estáticos y gzip MUCHO más eficiente y fácilmente que el modelo de subprocesos de Java / Tomcat.
No quiere tirar al gato al baño porque está ocupado comprimiendo cosas en lugar de atender solicitudes (o más probablemente girando subprocesos / comiendo CPU / montón esperando que ocurra la E / S de la base de datos mientras se ejecuta su factura de AWS, que es por qué Java / Tomcat tradicional podría no ser una buena idea para empezar dependiendo de lo que esté haciendo, pero estoy divagando ...)
refs:
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/howto.html#how-to-enable-http-response-compression
https://github.com/spring-projects/spring-boot/issues/2031