如何使用 Spring Webflux return GZIP 响应?

How to return GZIP responses with Spring Webflux?

假设我有一个使用 Spring Webflux 的非常简单的 HTTP 端点:

@GetMapping
fun greeting(@RequestParam("msg") val message : String) = Mono.just(Greeting(message))

其中 Greeting 是序列化为 JSON 的简单 DTO。我如何指示 Spring Webflux 将 return 响应压缩为 GZIP?如果重要的话,我正在使用 Netty 实现。

您要查找的是服务器压缩属性

server.compression.enabled=true
server.compression.min-response-size=1024

除了上面接受的答案之外,最好还提供最小响应大小,以消除压缩所有响应和 mime 类型的服务器开销。

server.compression.enabled=true
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml
server.compression.min-response-size=2KB