我尝试在Boot中使用CommonsMultipartResolver将我的旧应用程序(WAR)转换为Boot,现在它得到了以下代码:
@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; } }
这是Boot中正确的方法,导致我看到了一些属性要应用到application.properties中。它们与定义FilterRegistrationBean的目的是否相同?
# 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.
谁能提供样品使用方法?谢谢。
顺便说一句,它试图设置属性“ multipart.enabled = true”,我得到了:
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
这是Spring Boot中的错误,将在1.2.5中修复。