title: How to use CommonsMultipartResolver in Spring Boot
body: <p>I have tried to use CommonsMultipartResolver in Boot translating my old application (WAR) to Boot, and right now it got the following code:</p>
  
  <pre><code>@Configuration
      public class TestConfig {
  
          @Bean
          public FilterRegistrationBean openEntityManagerFilterRegistrationBean() {
              // Set upload filter
              final MultipartFilter multipartFilter = new MultipartFilter();
              final FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(multipartFilter);
              filterRegistrationBean.addInitParameter("multipartResolverBeanName", "commonsMultipartResolver");
  
              return filterRegistrationBean;
          }
  
          @Bean
          public CommonsMultipartResolver commonsMultipartResolver() {
              final CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
              commonsMultipartResolver.setMaxUploadSize(-1);
  
              return commonsMultipartResolver;
          }
      }
  </code></pre>
  
  <p>Is this the right way in Boot, cause a I saw some properties to be applied in application.properties. Would they be the same purpose than defining a FilterRegistrationBean?</p>
  
  <pre><code># MULTIPART (MultipartProperties)
  multipart.enabled=true
  multipart.file-size-threshold=0 # Threshold after which files will be written to disk.
  multipart.location= # Intermediate location of uploaded files.
  multipart.max-file-size=1Mb # Max file size.
  multipart.max-request-size=10Mb # Max request size.
  </code></pre>
  
  <p>Could anyone provide any sample how to use it? Thanks.</p>
  
  <p>By the way, It tried to set the property "multipart.enabled=true" and I got:</p>
  
  <pre><code>Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'enabled' of bean class [org.springframework.boot.autoconfigure.web.MultipartProperties]: Bean property 'enabled' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
      at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1076)
      at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:927)
      at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:95)
      at org.springframework.validation.DataBinder.applyPropertyValues(DataBinder.java:749)
      at org.springframework.validation.DataBinder.doBind(DataBinder.java:645)
      at org.springframework.boot.bind.RelaxedDataBinder.doBind(RelaxedDataBinder.java:121)
      at org.springframework.validation.DataBinder.bind(DataBinder.java:630)
      at org.springframework.boot.bind.PropertiesConfigurationFactory.doBindPropertiesToTarget(PropertiesConfigurationFactory.java:253)
      at org.springframework.boot.bind.PropertiesConfigurationFactory.bindPropertiesToTarget(PropertiesConfigurationFactory.java:227)
      at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:296)
      ... 73 common frames omitted
  </code></pre>