Jay*_*ann 9 java spring servlets spring-mvc spring-java-config
我正在采用全Java方法来进行Spring MVC配置,并且无法弄清楚如何以编程方式将MultipartConfigElement我与我联系起来DispatcherServlet.
Spring文档说明:
为了使用基于Servlet 3.0的多部分解析,您需要在web.xml中使用"multipart-config"部分标记DispatcherServlet,或者在程序化Servlet注册中使用javax.servlet.MultipartConfigElement标记...
http://docs.spring.io/spring/docs/4.0.4.RELEASE/spring-framework-reference/htmlsingle/#mvc-multipart
这是我的WebApplicationInitializer代码:
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("/*");
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何MultipartConfigElement与我联系DispatcherServlet?我没有看到任何方法,如setMultipartConfiguration或任何接受它的构造函数.
另请注意,我的WebConfig声明MultipartResolver:
@Bean
public StandardServletMultipartResolver multipartResolver(){
return new StandardServletMultipartResolver();
}
Run Code Online (Sandbox Code Playgroud)
但Spring文档指出:
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.
Run Code Online (Sandbox Code Playgroud)
任何指导将不胜感激.
Art*_*lan 11
看起来你需要这个:
ServletRegistration.Dynamic dispatcher =
container.addServlet("dispatcher", dispatcherServlet);
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/*");
dispatcher.setMultipartConfig(new MultipartConfigElement("/tmp", 1024*1024*5, 1024*1024*5*5, 1024*1024));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11341 次 |
| 最近记录: |