Phần còn lại của những câu trả lời này đã lỗi thời và / hoặc quá phức tạp đối với thứ gì đó phải là IMO đơn giản (gzip đã tồn tại được bao lâu rồi? Lâu hơn Java ...) Từ tài liệu:
Trong ứng dụng.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
Trong ứng dụng.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
Cũ hơn 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");
}
}
Cũng lưu ý rằng điều này CHỈ hoạt động nếu bạn đang chạy tomcat được nhúng:
Nếu bạn định triển khai cho tomcat không nhúng, bạn sẽ phải kích hoạt nó trong server.xml http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_Implementation
Ghi chú Sản xuất IRL:
Ngoài ra, để tránh tất cả những điều này, hãy xem xét sử dụng thiết lập proxy / bộ cân bằng tải trước Tomcat với nginx và / hoặc haproxy hoặc tương tự vì nó sẽ xử lý tài sản tĩnh và gzip NHIỀU hiệu quả và dễ dàng hơn so với mô hình phân luồng của Java / Tomcat.
Bạn không muốn ném 'con mèo vào bồn tắm vì nó đang bận nén công cụ thay vì phục vụ yêu cầu (hoặc nhiều khả năng quay chuỗi / ăn CPU / heap ngồi chờ IO cơ sở dữ liệu xảy ra trong khi chạy hóa đơn AWS của bạn tại sao Java / Tomcat truyền thống có thể không phải là một ý tưởng hay khi bắt đầu tùy thuộc vào những gì bạn đang làm nhưng tôi lạc đề ...)
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