Printemps 4 Java Config pour MultipartResolver pour Servlet 3.0
Je vais prendre un Java approche de Spring MVC de configuration et ne peut pas comprendre comment associer un MultipartConfigElement
avec mon DispatcherServlet
par programmation.
Printemps états de documentation:
Afin d'utiliser Servlet 3.0 basée sur plusieurs parties de l'analyse, vous devez marquer
la DispatcherServlet avec un "multipart-config" dans la section web.xml ou
avec un javax.servlet.MultipartConfigElement dans la programmation de la Servlet
l'enregistrement...
http://docs.spring.io/spring/docs/4.0.4.RELEASE/spring-framework-reference/htmlsingle/#mvc-multipart
Voici mon WebApplicationInitializer
code:
public class DispatcherServletInitializer implements WebApplicationInitializer {
private static final Logger logger = LoggerFactory.getLogger(DispatcherServletInitializer.class);
@Override
public void onStartup(ServletContext container) {
//Create the 'root' Spring application context
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(AppConfig.class);
//Manage the lifecycle of the root application context
container.addListener(new ContextLoaderListener(rootContext));
//Create the dispatcher servlet's Spring application context
AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();
dispatcherContext.register(WebConfig.class);
//HOW CAN I ASSOCIATE THIS CONFIG WITH MY DISPATCHER SERVLET?
MultipartConfigElement config = new MultipartConfigElement("C:\\Temp", 20848820, 418018841, 1048576);
DispatcherServlet dispatcherServlet = new DispatcherServlet(dispatcherContext);
//Register and map the dispatcher servlet
ServletRegistration.Dynamic dispatcher =
container.addServlet("dispatcher", dispatcherServlet);
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/*");
}
}
Comment puis-je associer le MultipartConfigElement
avec mon DispatcherServlet
? Je ne vois pas de méthode comme setMultipartConfiguration ou de tout constructeur qui l'accepte.
Notez également que mon WebConfig déclare un MultipartResolver
:
@Bean
public StandardServletMultipartResolver multipartResolver(){
return new StandardServletMultipartResolver();
}
Mais le Ressort de la documentation états:
Configuration settings such as maximum sizes or storage locations need to be applied at that Servlet registration level as Servlet 3.0 does not allow for those settings to be done from the MultipartResolver.
Des conseils seraient grandement appréciés.
OriginalL'auteur Jay Goettelmann | 2014-05-09
Vous devez vous connecter pour publier un commentaire.
Ressemble vous avez besoin de ceci:
OriginalL'auteur Artem Bilan
Voici la solution compatible avec
AbstractAnnotationConfigDispatcherServletInitializer
moyen de la configuration de la servlet. C'est un peu moins invasive que laWebApplicationInitializer
.Il utilise une substitution de
AbstractAnnotationConfigDispatcherServletInitializer.customizeRegistration
.J'ai trouvé qu'il s'accroche la trace de la pile de
getServletMappings
et donc d'entrer dans le code deorg\springframework\web\servlet\support\AbstractDispatcherServletInitializer.java
:OriginalL'auteur Jarekczek