一、先提供解决思路:springboot框架中都大量的对缓冲区有对应的设置,如果光找maxInMemorySize 262144,去解决都不会找到有效的解决办法,因为最少我知道的sping在文件上传、表单提交,webclient发送等都有maxInMemorySize的限制。
所以要先找出出现这个问题是出自哪个类,debug方法,然后在类变量列表中找到对应的类调用的是哪个设置。
二、解决典型的几个地方maxInMemorySize的问题。
1、最期的springweb文件上传,可以直接在配置文件中:
multipart.max-in-memory-size=10MB 配置大小
2、如果使用表单提交报maxInMemorySize使用配置类来改参数:
@Configuration
public class DataBufferConfig implements WebFluxConfigurer {
@Override
public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
configurer.defaultCodecs().maxInMemorySize(10*1024*1024);
}
}
3、如果webClient或SpringGateway上面转发修改webclient.builder设置:
private WebClient.Builder Builder (HttpClient httpClient) {
ClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);
return WebClient.builder()
.clientConnecto

文章提供了针对Springboot框架中maxInMemorySize限制的解决思路,强调了需要定位问题源头。提到了三个典型场景的解决方案:1)配置文件中调整multipart.max-in-memory-size以处理文件上传;2)使用配置类DataBufferConfig改变表单提交的内存限制;3)对于webClient,通过定制编码器和解码器设置maxInMemorySize。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



