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;
        }
    }
  • 相关阅读:
    WinDbg常用命令系列---.write_cmd_hist (写命令历史记录)
    WinDbg常用命令系列---!findstack
    WinDbg常用命令系列---!peb
    WinDbg常用命令系列---!teb
    WinDbg常用命令系列---!heap
    WinDbg常用命令系列---!htrace
    WinDbg常用命令系列---!handle
    WinDbg常用命令系列---!dlls
    WinDbg常用命令系列---!cppexr
    WinDbg常用命令系列---.load, .loadby (Load Extension DLL)
  • 原文地址:https://www.cnblogs.com/virgosnail/p/10282083.html
Copyright © 2011-2022 走看看