前因:
原有一Spring MVC项目,因公司整体改为Kubernetes+Docker的容器化部署方式,而Spring MVC项目制作Docker镜像过于繁琐,故将该项目改为Spring Boot项目方便打包为Docker镜像。
表征:
改造后其他功能全部正常,唯上传文件功能不能正常使用,排查后发现上传文件的Controller接收的MultipartFile为空。
原因:
项目虽已改造为Spring Boot项目,但仍使用xml文件进行配置,也没有修改过这些配置文件,因而仍然在applicationContext.xml中配置了CommonsMultipartResolver Bean。而Spring Boot会自动配置一个MultipartResolver Bean,两者冲突,导致获取MultipartFile为空。