Sisa dari jawaban ini sudah ketinggalan zaman dan / atau terlalu rumit untuk sesuatu yang seharusnya IMO sederhana (berapa lama gzip telah ada sekarang? Lebih lama dari Java ...) Dari dokumen:
Dalam 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
Dalam 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
Lebih tua dari 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");
}
}
Perhatikan juga ini HANYA akan berfungsi jika Anda menjalankan tomcat tertanam:
Jika Anda berencana untuk menerapkan ke kucing jantan yang tidak tertanam, Anda harus mengaktifkannya di server.xml http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_Implementation
Catatan Produksi IRL:
Juga untuk menghindari semua ini, pertimbangkan untuk menggunakan pengaturan proxy / load balancer di depan Tomcat dengan nginx dan / atau haproxy atau serupa karena ini akan menangani aset statis dan gzip JAUH lebih efisien dan mudah daripada model threading Java / Tomcat.
Anda tidak ingin melempar 'cat ke dalam bak mandi karena sibuk mengompresi barang alih-alih melayani permintaan (atau lebih mungkin memutar utas / memakan CPU / tumpukan duduk menunggu IO database terjadi saat menjalankan tagihan AWS Anda yang mengapa Java / Tomcat tradisional mungkin bukan ide yang baik untuk memulai tergantung pada apa yang Anda lakukan tetapi saya ngelantur ...)
referensi:
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