package org.springframework.issues.config; import java.util.EnumSet; import javax.servlet.DispatcherType; import javax.servlet.ServletContext; import javax.servlet.ServletRegistration; import org.slf4j.Logger; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter; /** * */ public class AppInitializer implements WebApplicationInitializer { @SuppressWarnings("unused") private static final Logger logger = org.slf4j.LoggerFactory.getLogger(AppInitializer.class); @Override public void onStartup(ServletContext container) { AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(AppRootConfig.class); // Manage the lifecycle of the root application context container.addListener(new ContextLoaderListener(rootContext)); container.addFilter("resourceUrlEncodingFilter", ResourceUrlEncodingFilter.class).addMappingForUrlPatterns( EnumSet.allOf(DispatcherType.class), false, "/*"); // Create the dispatcher servlet's Spring application context AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext(); dispatcherContext.register(WebConfig.class); // Register and map the dispatcher servlet ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet( dispatcherContext)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }