package org.springframework.issues.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.FrameworkServlet;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import org.springframework.web.util.HttpSessionMutexListener;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
public class BootstrapSpringUsingInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
private static final Logger logger = LoggerFactory.getLogger(BootstrapSpringUsingInitializer.class);
@Override protected String[] getServletMappings() {
return new String[]{ "/" };
}
@Override protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{ WebConfig.class };
}
@Override protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override protected FrameworkServlet createDispatcherServlet(WebApplicationContext servletAppContext) {
DispatcherServlet dispatcherServlet = new DispatcherServlet(servletAppContext);
dispatcherServlet.setThrowExceptionIfNoHandlerFound(true); // we don't use a default handler but handle that exception in a controller advice (GlobalExceptionHandler)
return dispatcherServlet;
}
@Override public void onStartup(ServletContext servletContext) throws ServletException {
logger.info("===============================================================================");
logger.info("== starting up ... ==");
logger.info("===============================================================================");
super.onStartup(servletContext);
servletContext.addListener(new HttpSessionMutexListener());
servletContext.addListener(new StartupListener());
logger.info("... bootstrap code done.");
}
}