package com.gmail.at.zhuikov.aleksandr.servlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration.Dynamic; import org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.support.XmlWebApplicationContext; import org.springframework.web.filter.DelegatingFilterProxy; import org.springframework.web.filter.HiddenHttpMethodFilter; import org.springframework.web.servlet.DispatcherServlet; public class Initializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext context) throws ServletException { context.addFilter("springSecurityFilterChain", DelegatingFilterProxy.class) .addMappingForUrlPatterns(null, false, "/*"); context.addFilter("OpenEntityManagerInViewFilter", OpenEntityManagerInViewFilter.class) .addMappingForUrlPatterns(null, false, "*"); context.addFilter("HiddenHttpMethodFilter", HiddenHttpMethodFilter.class) .addMappingForUrlPatterns(null, false, "*"); registerRootSpringContext(context); registerSpringMvcContext(context); } private void registerSpringMvcContext(ServletContext context) { XmlWebApplicationContext mvc = new XmlWebApplicationContext(); mvc.setConfigLocation("/WEB-INF/spring/appServlet/servlet-context.xml"); Dynamic mvcRegistration = context.addServlet("mvc", new DispatcherServlet(mvc)); mvcRegistration.addMapping("/"); mvcRegistration.setLoadOnStartup(1); } private void registerRootSpringContext(ServletContext context) { XmlWebApplicationContext root = new XmlWebApplicationContext(); root.setConfigLocation("/WEB-INF/spring/root-context.xml"); context.addListener(new ContextLoaderListener(root)); } }