Close

Spring MVC - Extending AbstractAnnotationConfigDispatcherServletInitializer Examples

Spring MVC 


AbstractAnnotationConfigDispatcherServletInitializer is a base class to initialize Spring application in Servlet container environment. It's an extension of WebApplicationInitializer. The subclasses are supposed to provide the classes annotated with @Configuration, Servlet config classes and DispatcherServlet mapping pattern.


Examples


package com.logicbig.example;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class AppInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses () {
return new Class<?>[]{Config.class};
}

@Override
protected Class<?>[] getServletConfigClasses () {
return null;
}

@Override
protected String[] getServletMappings () {
return new String[]{"/"};
}
}
Original Post




package com.logicbig.example;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class AppInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses () {
return new Class<?>[]{AppConfig.class};
}

@Override
protected Class<?>[] getServletConfigClasses () {
return null;
}

@Override
protected String[] getServletMappings () {
return new String[]{"/"};
}
}
Original Post




package com.logicbig.example;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.*;
import org.springframework.web.servlet.support.*;

public class AppInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses () {
return new Class<?>[]{AppConfig.class};
}

@Override
protected Class<?>[] getServletConfigClasses () {
return null;
}

@Override
protected String[] getServletMappings () {
return new String[]{"/"};
}

@Override
protected FrameworkServlet createDispatcherServlet (WebApplicationContext wac) {
DispatcherServlet ds = new DispatcherServlet(wac);
//setting this flag to true will throw NoHandlerFoundException instead of 404 page
ds.setThrowExceptionIfNoHandlerFound(true);
return ds;
}
}




DispatcherServlet#setDetectAllHandlerExceptionResolvers(false) will allow to register only one HandlerExceptionResolver bean with name handlerExceptionResolver

package com.logicbig.example;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.*;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class AppInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses () {
return new Class<?>[]{AppConfig.class};
}

@Override
protected Class<?>[] getServletConfigClasses () {
return null;
}

@Override
protected String[] getServletMappings () {
return new String[]{"/"};
}

@Override
protected FrameworkServlet createDispatcherServlet (WebApplicationContext wac) {
DispatcherServlet ds = new DispatcherServlet(wac);
ds.setDetectAllHandlerExceptionResolvers(false);
return ds;
}
}




See Also