Spring Framework

org.springframework.web.servlet.support
Class AbstractDispatcherServletInitializer

java.lang.Object
  extended by org.springframework.web.context.AbstractContextLoaderInitializer
      extended by org.springframework.web.servlet.support.AbstractDispatcherServletInitializer
All Implemented Interfaces:
WebApplicationInitializer
Direct Known Subclasses:
AbstractAnnotationConfigDispatcherServletInitializer

public abstract class AbstractDispatcherServletInitializer
extends AbstractContextLoaderInitializer

Base class for WebApplicationInitializer implementations that register a DispatcherServlet in the servlet context.

Concrete implementations are required to implement createServletApplicationContext(), as well as getServletMappings(), both of which gets invoked from registerDispatcherServlet(ServletContext). Further customization can be achieved by overriding customizeRegistration(ServletRegistration.Dynamic).

Because this class extends from AbstractContextLoaderInitializer, concrete implementations are also required to implement AbstractContextLoaderInitializer.createRootApplicationContext() to set up a parent "root" application context. If a root context is not desired, implementations can simply return null in the createRootApplicationContext() implementation.

Since:
3.2
Author:
Arjen Poutsma, Chris Beams

Field Summary
static java.lang.String DEFAULT_SERVLET_NAME
          The default servlet name.
 
Fields inherited from class org.springframework.web.context.AbstractContextLoaderInitializer
logger
 
Constructor Summary
AbstractDispatcherServletInitializer()
           
 
Method Summary
protected abstract  WebApplicationContext createServletApplicationContext()
          Create a servlet application context to be provided to the DispatcherServlet.
protected  void customizeRegistration(javax.servlet.ServletRegistration.Dynamic registration)
          Optionally perform further registration customization once registerDispatcherServlet(ServletContext) has completed.
protected abstract  java.lang.String[] getServletMappings()
          Specify the servlet mapping(s) for the DispatcherServlet, e.g.
protected  java.lang.String getServletName()
          Return the name under which the DispatcherServlet will be registered.
 void onStartup(javax.servlet.ServletContext servletContext)
          Configure the given ServletContext with any servlets, filters, listeners context-params and attributes necessary for initializing this web application.
protected  void registerDispatcherServlet(javax.servlet.ServletContext servletContext)
          Register a DispatcherServlet against the given servlet context.
 
Methods inherited from class org.springframework.web.context.AbstractContextLoaderInitializer
createRootApplicationContext, registerContextLoaderListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_SERVLET_NAME

public static final java.lang.String DEFAULT_SERVLET_NAME
The default servlet name. Can be customized by overriding getServletName().

See Also:
Constant Field Values
Constructor Detail

AbstractDispatcherServletInitializer

public AbstractDispatcherServletInitializer()
Method Detail

onStartup

public void onStartup(javax.servlet.ServletContext servletContext)
               throws javax.servlet.ServletException
Description copied from interface: WebApplicationInitializer
Configure the given ServletContext with any servlets, filters, listeners context-params and attributes necessary for initializing this web application. See examples above.

Specified by:
onStartup in interface WebApplicationInitializer
Overrides:
onStartup in class AbstractContextLoaderInitializer
Parameters:
servletContext - the ServletContext to initialize
Throws:
javax.servlet.ServletException - if any call against the given ServletContext throws a ServletException

registerDispatcherServlet

protected void registerDispatcherServlet(javax.servlet.ServletContext servletContext)
Register a DispatcherServlet against the given servlet context.

This method will create a DispatcherServlet with the name returned by getServletName(), initializing it with the application context returned from createServletApplicationContext(), and mapping it to the patterns returned from getServletMappings().

Further customization can be achieved by overriding customizeRegistration(ServletRegistration.Dynamic).

Parameters:
servletContext - the context to register the servlet against

getServletName

protected java.lang.String getServletName()
Return the name under which the DispatcherServlet will be registered. Defaults to DEFAULT_SERVLET_NAME.

See Also:
registerDispatcherServlet(ServletContext)

createServletApplicationContext

protected abstract WebApplicationContext createServletApplicationContext()
Create a servlet application context to be provided to the DispatcherServlet.

The returned context is delegated to Spring's DispatcherServlet.DispatcherServlet(WebApplicationContext) As such, it typically contains controllers, view resolvers, locale resolvers, and other web-related beans.

See Also:
registerDispatcherServlet(ServletContext)

getServletMappings

protected abstract java.lang.String[] getServletMappings()
Specify the servlet mapping(s) for the DispatcherServlet, e.g. '/', '/app', etc.

See Also:
registerDispatcherServlet(ServletContext)

customizeRegistration

protected void customizeRegistration(javax.servlet.ServletRegistration.Dynamic registration)
Optionally perform further registration customization once registerDispatcherServlet(ServletContext) has completed.

Parameters:
registration - the DispatcherServlet registration to be customized
See Also:
registerDispatcherServlet(ServletContext)

Spring Framework