Il resto di queste risposte sono obsolete e / o esageratamente complicate per qualcosa che dovrebbe essere semplice IMO (da quanto tempo gzip è in circolazione? Più lungo di Java ...) Dai documenti:
In 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
In 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
Più vecchio di 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");
}
}
Nota anche che funzionerà SOLO se stai eseguendo tomcat incorporato:
Se prevedi di eseguire la distribuzione su un tomcat non incorporato, dovrai abilitarlo in server.xml http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_Implementation
Nota di produzione IRL:
Inoltre, per evitare tutto ciò, considera l'utilizzo di una configurazione proxy / bilanciatore del carico davanti a Tomcat con nginx e / o haproxy o simili poiché gestirà risorse statiche e gzip MOLTO in modo più efficiente e semplice rispetto al modello di threading di Java / Tomcat.
Non vuoi gettare il gatto nella vasca da bagno perché è impegnato a comprimere cose invece di servire le richieste (o più probabilmente a far girare thread / mangiare CPU / heap in attesa che si verifichi l'IO del database durante l'esecuzione della tua fattura AWS che è perché il tradizionale Java / Tomcat potrebbe non essere una buona idea per cominciare a seconda di quello che stai facendo, ma sto divagando ...)
rif:
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