还是上篇传统Spring项目换SpringBoot框架中的一个问题,先描述一下问题:
整和SpringBoot后系统中的文件上传都不能用了,统统报错如下:
大致就是Failed to parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: Stream closed这样,通过异常栈信息可以看出当时使用的文件上传解析器是CommonsMultipartResolver,在项目里找了一下配置,由于之前是Spring项目确实是在spring-mvc.xml中配置了这个解析器:
问题就出在这里。
去Spring的官网上看了一眼,当然,是翻译后看了一眼,MultipartResolver有两种实现:
而SpringBoot的autoconfigure那一套用哪个实现想必也是约定好的,看了一眼spring-boot-autoconfigure的spring.factories,果然找到了这行: