最近发现一个问题:springboot实现文件上传时,默认是先在内置的文件接收器中接收完文件流,然后才调用拦截器和逻辑处理部分,导致原本拦截出错没必要传的文件先传好了,浪费时间。
内置fileupload模块可以在application.properties中配置:
## examples
multipart.enabled=true
multipart.max-file-size=100Mb
multipart.max-request-size=50Mb
但是以上没有lazy的配置。
解决:
1、先将内置fileupload关闭:multipart.enabled=false。
2、在web配置类public class WebConfig extends WebMvcConfigurerAdapter
中增加:
@Bean
public MultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
// multipartResolver.setMaxUploadSize(1000000);
// lazy 加载
multipartResolver.setResolveLazily(true);
return multipartResolver;
}