これらの残りの回答は古くなっているか、単純なIMOである必要があるために複雑になっています(gzipは現在どのくらいの期間使用されていますか?Javaよりも長い...)ドキュメントから:
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
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
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");
}
}
また、埋め込まれたTomcatを実行している場合にのみ機能することにも注意してください。
埋め込みでないTomcatにデプロイする場合は、server.xmlで有効にする必要がありますhttp://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_Implementation
IRLプロダクションノート:
また、これらすべてを回避するために、nginxやhaproxyなどを使用してTomcatの前にプロキシ/ロードバランサ設定を使用することを検討してください。静的アセットとgzipは、Java / Tomcatのスレッドモデルよりも効率的かつ簡単に処理されます。
それはリクエストを処理する代わりにものを圧縮するのに忙しいので「浴室で猫を投げたくありません」(または可能性が高いです)伝統的なJava / Tomcatが、あなたがやっていることによっては最初から始めた方がいいのではないかもしれませんが、私は余談です...)
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