O restante dessas respostas está desatualizado e / ou excessivamente complicado para algo que deveria ser simples IMO (há quanto tempo o gzip existe agora? Há mais tempo do que o Java ...) Dos documentos:
Em 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
Em 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
Anterior a 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");
}
}
Observe também que isso SÓ funcionará se você estiver executando o tomcat incorporado:
Se você planeja implantar em um tomcat não integrado, deverá habilitá-lo em server.xml http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_Implementation
Nota de produção IRL:
Além disso, para evitar tudo isso, considere o uso de uma configuração de proxy / balanceador de carga na frente do Tomcat com nginx e / ou haproxy ou similar, uma vez que ele manipulará ativos estáticos e gzip MUITO de forma mais eficiente e fácil do que o modelo de threading Java / Tomcat.
Você não quer jogar o gato na banheira porque ele está ocupado comprimindo coisas em vez de servir solicitações (ou mais provavelmente girando threads / comendo CPU / heap sentado esperando que o banco de dados IO ocorra enquanto aumenta sua conta da AWS, que é porque o Java / Tomcat tradicional pode não ser uma boa ideia para começar, dependendo do que você está fazendo, mas estou 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