您的位置:首页 > 科技 > 能源 > 上海知名网站开发公司_旅游网站建设的背景_友情链接买卖_百度搜题网页版入口

上海知名网站开发公司_旅游网站建设的背景_友情链接买卖_百度搜题网页版入口

2025/4/19 9:00:52 来源:https://blog.csdn.net/zp357252539/article/details/147067742  浏览:    关键词:上海知名网站开发公司_旅游网站建设的背景_友情链接买卖_百度搜题网页版入口
上海知名网站开发公司_旅游网站建设的背景_友情链接买卖_百度搜题网页版入口

Spring MVC与Spring Boot文件上传配置项对比


一、Spring MVC配置项(基于不同MultipartResolver实现)

1. 使用 CommonsMultipartResolver(Apache Commons FileUpload)
@Bean
public MultipartResolver multipartResolver() {CommonsMultipartResolver resolver = new CommonsMultipartResolver();resolver.setMaxUploadSize(10485760); // 10MBresolver.setMaxInMemorySize(4096);   // 4KBresolver.setDefaultEncoding("UTF-8");resolver.setUploadTempDir(new FileSystemResource("/temp/upload"));return resolver;
}
配置项描述默认值作用域
maxUploadSize允许上传的文件总大小(字节)-1(无限制)全局限制
maxInMemorySize内存中临时存储的最大大小(超过则写入磁盘)10240(10KB)内存与磁盘切换阈值
defaultEncoding请求编码格式ISO-8859-1解析文件名和参数编码
uploadTempDir临时文件存储路径系统默认临时目录自定义临时目录路径
resolveLazily延迟解析请求(避免大文件阻塞)false控制请求解析时机

2. 使用 StandardServletMultipartResolver(Servlet 3.0+)

无需手动配置MultipartResolver属性,但需通过Servlet容器配置参数控制:

<!-- 在web.xml中配置Tomcat参数 -->
<Context><Parameter name="maxFileSize" value="10MB" override="false"/><Parameter name="maxRequestSize" value="10MB" override="false"/>
</Context>
配置项描述默认值作用域
maxFileSize单个文件最大大小(Servlet容器参数)无限制单个文件限制
maxRequestSize请求总大小限制(Servlet容器参数)无限制全局请求限制
fileSizeThreshold内存与磁盘切换阈值(Servlet容器参数)0内存与磁盘切换阈值

二、Spring Boot配置项(通过application.propertiesapplication.yml
# application.properties配置示例
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.location=/temp/upload
spring.servlet.multipart.enabled=true
spring.servlet.multipart.default-charset=UTF-8
spring.servlet.multipart.resolve-lazily=true
配置项描述默认值作用域
spring.servlet.multipart.max-file-size单个文件最大大小(格式:10MB1MB单个文件限制
spring.servlet.multipart.max-request-size请求总大小限制(格式:10MB10MB全局请求限制
spring.servlet.multipart.location临时文件存储路径系统默认临时目录自定义临时目录路径
spring.servlet.multipart.enabled是否启用multipart支持true全局开关
spring.servlet.multipart.default-charset请求编码格式UTF-8解析文件名和参数编码
spring.servlet.multipart.resolve-lazily延迟解析请求(避免大文件阻塞)false控制请求解析时机

三、配置项对比表格
配置项Spring MVC(CommonsMultipartResolver)Spring MVC(StandardServletMultipartResolver)Spring Boot说明
单文件大小限制maxUploadSize(字节)maxFileSize(Servlet容器参数)max-file-sizeSpring Boot支持单位格式(如10MB),而Spring MVC需转换单位。
总请求大小限制maxUploadSize(字节)maxRequestSize(Servlet容器参数)max-request-sizeSpring Boot配置更直观,支持单位格式。
临时文件路径uploadTempDir无(依赖容器默认路径)locationSpring Boot提供显式配置。
编码格式defaultEncodingdefault-charsetSpring Boot默认UTF-8,与国际标准一致。
内存与磁盘切换阈值maxInMemorySize(字节)fileSizeThreshold(Servlet容器参数)Spring Boot未直接暴露此配置项,需通过容器参数控制。
延迟解析resolveLazilyresolve-lazilySpring Boot支持此配置,避免大文件阻塞线程。
全局开关无(需手动配置Bean)无(需手动配置Bean)enabledSpring Boot提供显式开关。

四、关键差异总结
  1. 配置方式

    • Spring MVC:需手动配置MultipartResolver Bean(如CommonsMultipartResolver),或通过Servlet容器参数(如Tomcat的web.xml)。
    • Spring Boot:通过application.properties统一配置,无需手动声明Bean,自动适配容器。
  2. 配置项丰富度

    • Spring Boot:提供更丰富的配置项(如enabledresolve-lazily),且支持单位格式(如10MB)。
    • Spring MVC:依赖具体MultipartResolver实现类,配置项分散(如CommonsMultipartResolver需Java代码配置,StandardServletMultipartResolver需容器参数)。
  3. 兼容性

    • Spring Boot:默认启用StandardServletMultipartResolver,要求Servlet 3.0+容器(如Tomcat 7+)。
    • Spring MVC:若使用CommonsMultipartResolver,需额外引入commons-fileupload依赖。
  4. 推荐实践

    • Spring MVC:优先使用StandardServletMultipartResolver(Servlet 3.0+),简化配置。
    • Spring Boot:直接通过配置文件控制,无需关心底层实现细节。

五、总结

框架配置复杂度依赖要求推荐配置方式
Spring MVC高(需手动配置)commons-fileupload或Servlet 3.0+使用StandardServletMultipartResolver + 容器参数
Spring Boot低(配置文件)自动包含依赖通过spring.servlet.multipart.*配置

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com