首页
关于
推荐
ByteVirt主机
Search
1
win10 锁屏壁纸 Windows聚焦不更新解决方法
467 阅读
2
SpringBoot 集成Logback实现rsyslog日志记录
396 阅读
3
群晖Docker搭建Redis集群
206 阅读
4
群晖自动更换登录页背景图为Bing壁纸
206 阅读
5
阿里云maven仓库慢的解决方法
116 阅读
数据库
群晖
maven
windows
docker
Java
登录
Search
标签搜索
群晖
壁纸
postgresql
数据库
mysql
windows
maven
阿里云
docker
代码搬运工
累计撰写
8
篇文章
累计收到
0
条评论
首页
栏目
数据库
群晖
maven
windows
docker
Java
页面
关于
推荐
ByteVirt主机
搜索到
1
篇与
的结果
2025-01-08
解决springboot升级3.X后form-data类型请求无法传参的问题
解决这个问题前先普及一下Spring Boot是如何解析form-data的,Spring Boot通过MultipartResolver接口来解析multipart/form-data类型请求,该接口有两个实现类CommonsMultipartResolver和StandardServletMultipartResolver,下面我们来分别看一下这两个实现类1、CommonsMultipartResolverCommonsMultipartResolver是基于Apache Commons FileUpload库实现的。它使用Jakarta Commons FileUpload来解析multipart/form-data请求。这个解析器可以在application.properties或application.yml文件中通过配置spring.servlet.multipart.resolver属性来启用。但是在springboot 3.x中,该实现类已被弃用。2、StandardServletMultipartResolverStandardServletMultipartResolver是Spring Boot默认的MultipartResolver实现。它依赖于Servlet 3.0规范提供的API来解析multipart/form-data请求。当没有显式配置其他MultipartResolver时,Spring Boot会自动使用这个解析器。 刚才已经说明了,springboot3只支持StandardServletMultipartResolver,所以如果遇到form-data无法解析的情况,就是StandardServletMultipartResolver没有被加载,StandardServletMultipartResolver加载是由MultipartAutoConfiguration来实现的,贴上代码如下 从代码中可以看到MultipartAutoConfiguration被加载的关键是 spring.servlet.multipart.enabled 这个配置项,经过排查发现,原因是springboot升级前项目使用的是CommonsMultipartResolver,所以将 spring.servlet.multipart.enabled 设为false了,将该配置项改为true问题解决!如果不是这个原因,那么你需要排查一下项目中是否自定义实现MultipartResolver接口。
2025年01月08日
3 阅读
0 评论
0 点赞