Spring 4 auf Java-Config für MultipartResolver für Servlet 3.0
Mache ich einen all-Java-Ansatz zur Spring MVC Konfiguration und kann nicht herausfinden, wie die Zuordnung einer MultipartConfigElement
mit meinem DispatcherServlet
programmgesteuert.
Spring-Dokumentation besagt:
Zur Nutzung der Servlet 3.0-basierten multipart Parsen, müssen Sie markieren
das DispatcherServlet mit einem "multipart-config" Abschnitt web.xml oder
mit ein javax.- servlet.MultipartConfigElement in den programmatischen Servlet
Anmeldung...
http://docs.spring.io/spring/docs/4.0.4.RELEASE/spring-framework-reference/htmlsingle/#mvc-multipart
Hier ist mein 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("/*");
}
}
Wie Verbinde ich die MultipartConfigElement
mit meinem DispatcherServlet
? Ich sehe keine Methode, wie setMultipartConfiguration oder jeder Konstruktor akzeptiert es.
Beachten Sie auch, dass meine WebConfig erklärt MultipartResolver
:
@Bean
public StandardServletMultipartResolver multipartResolver(){
return new StandardServletMultipartResolver();
}
Aber die Spring-Dokumentation besagt:
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.
Jede Beratung würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht aus wie Sie benötigen dieses:
Hier ist die Lösung kompatibel mit
AbstractAnnotationConfigDispatcherServletInitializer
Art und Weise der Konfiguration des servlet. Das ist ein bisschen weniger invasiv alsWebApplicationInitializer
.Es verwendet eine überschreibung der
AbstractAnnotationConfigDispatcherServletInitializer.customizeRegistration
.Fand ich es fangen die stack-trace der
getServletMappings
und somit immer in den codeorg\springframework\web\servlet\support\AbstractDispatcherServletInitializer.java
: