Comment utiliser CommonsMultipartResolver au Printemps de Démarrage
J'ai essayé d'utiliser CommonsMultipartResolver dans de Démarrage de la traduction de mon ancienne application (de la GUERRE) pour Démarrer, et maintenant il a obtenu le code suivant:
@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;
}
}
Est-ce la bonne façon de Démarrage, de provoquer un j'ai vu quelques propriétés à être appliqué dans l'application.les propriétés. Seraient-ils le même but que de définir un 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.
Quelqu'un pourrait-il fournir tout échantillon de comment l'utiliser? Merci.
Par la façon dont Il a essayé de définir la propriété "multipart.enabled=true" et j'ai obtenu:
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
OriginalL'auteur Carlos Alberto | 2015-06-10
Vous devez vous connecter pour publier un commentaire.
C'était un bug au Printemps de Démarrage et sera corrigé dans 1.2.5.
OriginalL'auteur Phil Webb
Tout d'abord, il n'y a pas de activé propriété dans
org.springframework.boot.autoconfigure.web.MultipartProperties
classe.Reportez-vous https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/MultipartProperties.java
Si vous utilisez Servlet 3 conteneur, vous ne devez utiliser commons fileupload mécanisme et Multipart est activée par défaut. Si vous ne voulez pas personnaliser multipart configuration par défaut pas besoin d'ajouter de config dans
application.properties
.Si vous souhaitez utiliser commons fileupload ensuite ajouter la configuration suivante est fonctionne bien:
Et bien sûr, nous devons ajouter commons fileupload dépendance.
multipartResolver
au lieu decomonsMultipartResolver
si vous voulez une bonne intégration avec leDispatcherServlet
. Aussi le filtre n'est pas obligatoire (seulement si vous êtes en la combinant avec Ressort de Sécurité il est).Il y a, en effet, n'est pas un
enabled
propriété dans la classe que cependant la propriété doit correspondre ceci pour activer/désactiver plusieurs parties de configuration. Donc, fondamentalement, je considère qu'un problème dans le multipart config le cadre du Printemps de Démarrage. Aussi pas toutes les propriétés avez besoin d'avoir une classe correspondante à être mappé, il y a aussi d'autres moyens d'utiliser les propriétés définies dans leapplication.properties
fichier.Si vous regardez le Printemps de Démarrage de la documentation docs.printemps.io/spring-boot/docs/current/reference/html/... il y a une propriété "multipart.enabled=true" et il dit valeur de paramètre. Pourquoi il existe si elle n'est pas valide?
"multipart.activé=false" est utilisé pour désactiver le démarrage du multipart autoconfiguraiton github.com/spring-projects/spring-boot/blob/master/...
OriginalL'auteur K. Siva Prasad Reddy
Si vous souhaitez utiliser
CommonsMultipartFile
pour télécharger un fichier, s'il vous plaît ajouter@EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})
dans votre ressort de démarrage du projet. Désactiver le multi-partie de configuration de spring boot.OriginalL'auteur 盖思呈