From a1a8c29c63e2b34779ace210d03803d8410d6c02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20R=C3=A4del?= Date: Wed, 19 Oct 2016 01:56:47 +0200 Subject: [PATCH] BAEL-86: Refactored WebInitializer and added MultipartResolver. --- .../servlet/WebApplicationInitializer.java | 30 +++++++++++++++++++ .../dispatcher/servlet/WebConfiguration.java | 7 +++++ .../dispatcher/servlet/WebInitializer.java | 28 ----------------- 3 files changed, 37 insertions(+), 28 deletions(-) create mode 100644 spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebApplicationInitializer.java delete mode 100644 spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebInitializer.java diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebApplicationInitializer.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebApplicationInitializer.java new file mode 100644 index 0000000000..76f19f2eb3 --- /dev/null +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebApplicationInitializer.java @@ -0,0 +1,30 @@ +package com.baeldung.spring.dispatcher.servlet; + +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +import javax.servlet.MultipartConfigElement; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletRegistration; + +public class WebApplicationInitializer implements org.springframework.web.WebApplicationInitializer { + @Override + public void onStartup(ServletContext servletContext) throws ServletException { + AnnotationConfigWebApplicationContext rootContext = + new AnnotationConfigWebApplicationContext(); + rootContext.register(RootConfiguration.class); + servletContext.addListener(new ContextLoaderListener(rootContext)); + AnnotationConfigWebApplicationContext webContext = + new AnnotationConfigWebApplicationContext(); + webContext.register(WebConfiguration.class); + webContext.scan("com.baeldung.spring.dispatcher.servlet.web"); + ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", + new DispatcherServlet(webContext)); + servlet.addMapping("/*"); + MultipartConfigElement multipartConfigElement = + new MultipartConfigElement("/tmp"); + servlet.setMultipartConfig(multipartConfigElement); + } +} diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java index 5bfde3fb6b..b997ec824e 100644 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java +++ b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebConfiguration.java @@ -6,6 +6,8 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.ui.context.support.ResourceBundleThemeSource; +import org.springframework.web.multipart.MultipartResolver; +import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.ThemeResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @@ -111,4 +113,9 @@ public class WebConfiguration extends WebMvcConfigurerAdapter { themeChangeInterceptor.setParamName("theme"); return themeChangeInterceptor; } + + @Bean + public MultipartResolver multipartResolver() { + return new StandardServletMultipartResolver(); + } } diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebInitializer.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebInitializer.java deleted file mode 100644 index 34e7ce6fc9..0000000000 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/spring/dispatcher/servlet/WebInitializer.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.spring.dispatcher.servlet; - -import com.baeldung.spring.dispatcher.servlet.web.filters.RequestLoggingFilter; -import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; - -import javax.servlet.Filter; - -public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { - @Override - protected Class[] getRootConfigClasses() { - return new Class[]{RootConfiguration.class}; - } - - @Override - protected Class[] getServletConfigClasses() { - return new Class[]{WebConfiguration.class}; - } - - @Override - protected String[] getServletMappings() { - return new String[]{"/*"}; - } - - @Override - protected Filter[] getServletFilters() { - return new Filter[]{new RequestLoggingFilter()}; - } -}