在 String、ByteArray 和 Resource 消息转换器中引入可配置的限制
作者: bclozel创建于 2026年9月10日更新于 2026年9月13日
标签in: webtype: enhancement
反应式编解码器提供了一个 `maxInMemorySize` 配置选项,用于限制运行时所使用的本机内存量。这并不适用于传统的消息转换器,原因有很多。许多 `HttpMessageConverter` 提供了在每个消息基础上限制分配内存的方式,通常是通过底层库(如 Jackson)。这可能会非常复杂,具体取决于消息格式。对于 `StringHttpMessageConverter`,`ByteArrayHttpMessageConverter` 和 `ResourceHttpMessageConverter`,Spring 框架不使用任何库,并且可以控制分配。我们应该引入一种机制,开发人员可以用来在每个解码的消息基础上强制限制内存使用量。我们还不确定这种机制是否应该是一个"共享"机制,还是每个转换器都应该单独考虑。转换器之后可以抛出 `ContentTooLargeException` ,以更好地反映请求失败的原因。
内容来源: spring-projects/spring-framework