zoukankan      html  css  js  c++  java
  • Spring boot MultipartResolver

    【参考文章】:Required MultipartFile parameter 'file' is not present

    【参考文章】:Springboot2.0中WebMvcConfigurerAdapter过时问题处理

    【参考文章】:spring boot EnableAutoConfiguration exclude 无效

    实现了 MultipartResolver 常用接口有两个:

      一个是  CommonsMultipartResolver:使用Jakarta Commons FileUpload 解析 multipart 请求;

      一个是 StandardServletMultipartResolver:依赖于 Servlet 3.0 解析 multipart 请求;

    1. StandardServletMultipartResolver 

      Spring boot 默认使用 StandardServletMultipartResolver 解析 multipart 请求;

    @Configuration
    @ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver.class,
            MultipartConfigElement.class })
    @ConditionalOnProperty(prefix = "spring.servlet.multipart", name = "enabled", matchIfMissing = true)
    @ConditionalOnWebApplication(type = Type.SERVLET)
    @EnableConfigurationProperties(MultipartProperties.class)
    public class MultipartAutoConfiguration {
    
        private final MultipartProperties multipartProperties;
    
        public MultipartAutoConfiguration(MultipartProperties multipartProperties) {
            this.multipartProperties = multipartProperties;
        }
    
        @Bean
        @ConditionalOnMissingBean({ MultipartConfigElement.class,
                CommonsMultipartResolver.class })
        public MultipartConfigElement multipartConfigElement() {
            return this.multipartProperties.createMultipartConfig();
        }
    
        @Bean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME)
        @ConditionalOnMissingBean(MultipartResolver.class)
        public StandardServletMultipartResolver multipartResolver() {
            StandardServletMultipartResolver multipartResolver = new StandardServletMultipartResolver();
            multipartResolver.setResolveLazily(this.multipartProperties.isResolveLazily());
            return multipartResolver;
        }
    
    }

    2. CommonsMultipartResolver

    2.1 排除默认配置

    spring:
      autoconfigure:
        exclude: org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration

    2.2 添加 CommonsMultipartResolver 的依赖

             <!--文件上传-->
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.4</version>
            </dependency>

    2.3 创建文件解析对象

    @Slf4j
    @Configuration
    public class  WebMvcConfig implements WebMvcConfigurer {
    
        @Bean(name = "multipartResolver")
        public MultipartResolver multipartResolver() {
            log.info("Loading the multipart resolver");
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
            return multipartResolver;
        }
    }
  • 相关阅读:
    二开案例.开发环境.从零开发第一个插件和数据字典
    二开案例.开发环境.调试插件代码
    C#中@的用法总结
    金蝶云社区年度资料合辑
    MySQL知识框架[博文汇总-持续更新]
    Redis基础篇(五)AOF与RDB比较和选择策略
    Redis基础篇(四)持久化:内存快照(RDB)
    单调栈技巧总结
    Redis基础篇(三)持久化:AOF日志
    Redis基础篇(二)高性能IO模型
  • 原文地址:https://www.cnblogs.com/virgosnail/p/10282083.html
Copyright © 2011-2022 走看看