## org.springframework.web.context
Class ContextLoaderListener

    java.lang.Object
      org.springframework.web.context.ContextLoader
          org.springframework.web.context.ContextLoaderListener

All Implemented Interfaces:
  EventListener, ServletContextListener

    public class ContextLoaderListener

extends ContextLoader
implements ServletContextListener

Bootstrap listener to start up and shut down Spring's root `WebApplicationContext`. Simply delegates to `ContextLoader` as well as to `ContextCleanupListener`.

This listener should be registered after `Log4jConfigListener` in `web.xml`, if the latter is used.

As of Spring 3.1, `ContextLoaderListener` supports injecting the root web application context via the `ContextLoaderListener(WebApplicationContext)` constructor, allowing for programmatic configuration in Servlet 3.0+ environments. See `WebApplicationInitializer` for usage examples.

Since:
  17.02.2003
Author:
  Juergen Hoeller, Chris Beams
See Also:
  `WebApplicationInitializer`, `Log4jConfigListener`

Field Summary

Fields inherited from class org.springframework.web.context.ContextLoader
`CONFIG_LOCATION_PARAM, CONTEXT_CLASS_PARAM, CONTEXT_ID_PARAM, CONTEXT_INITIALIZER_CLASSES_PARAM, LOCATOR_FACTORY_KEY_PARAM, LOCATOR_FACTORY_SELECTOR_PARAM`

Constructor Summary
`ContextLoaderListener()` Create a new `ContextLoaderListener` that will create a web application context based on the "contextClass" and "contextConfigLocation" servlet context-params.
`ContextLoaderListener(WebApplicationContext context)` Create a new `ContextLoaderListener` with the given application context.

Method Summary
`void` `contextDestroyed(ServletContextEvent event)` Close the root web application context.
`void` `contextInitialized(ServletContextEvent event)` Initialize the root web application context.
`protected ContextLoader` `createContextLoader()` Deprecated. in favor of simply subclassing ContextLoaderListener itself (which extends ContextLoader, as of Spring 3.0)
`ContextLoader` `getContextLoader()` Deprecated. in favor of simply subclassing ContextLoaderListener itself (which extends ContextLoader, as of Spring 3.0)

Methods inherited from class org.springframework.web.context.ContextLoader
`closeWebApplicationContext, configureAndRefreshWebApplicationContext, createWebApplicationContext, createWebApplicationContext, customizeContext, determineContextClass, determineContextInitializerClasses, getCurrentWebApplicationContext, initWebApplicationContext, loadParentContext`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ContextLoaderListener

    public ContextLoaderListener()

  Create a new `ContextLoaderListener` that will create a web application context based on the "contextClass" and "contextConfigLocation" servlet context-params. See `ContextLoader` superclass documentation for details on default values for each.

  This constructor is typically used when declaring `ContextLoaderListener` as a `<listener>` within `web.xml`, where a no-arg constructor is required.

  The created application context will be registered into the ServletContext under the attribute name `WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE` and the Spring application context will be closed when the `contextDestroyed(javax.servlet.ServletContextEvent)` lifecycle method is invoked on this listener.

  See Also:
    `ContextLoader`, `ContextLoaderListener(WebApplicationContext)`, `contextInitialized(ServletContextEvent)`, `contextDestroyed(ServletContextEvent)`

### ContextLoaderListener

    public ContextLoaderListener(WebApplicationContext context)

  Create a new `ContextLoaderListener` with the given application context. This constructor is useful in Servlet 3.0+ environments where instance-based registration of listeners is possible through the `ServletContext#addListener` API.

  The context may or may not yet be refreshed. If it (a) is an implementation of `ConfigurableWebApplicationContext` and (b) has not already been refreshed (the recommended approach), then the following will occur:

  - If the given context has not already been assigned an id, one will be assigned to it
  - `ServletContext` and `ServletConfig` objects will be delegated to the application context
  - `ContextLoader.customizeContext(javax.servlet.ServletContext, org.springframework.web.context.ConfigurableWebApplicationContext)` will be called
  - Any `ApplicationContextInitializer`s specified through the "contextInitializerClasses" init-param will be applied.
  - `refresh()` will be called
  If the context has already been refreshed or does not implement `ConfigurableWebApplicationContext`, none of the above will occur under the assumption that the user has performed these actions (or not) per his or her specific needs.

  See `WebApplicationInitializer` for usage examples.

  In any case, the given application context will be registered into the ServletContext under the attribute name `WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE` and the Spring application context will be closed when the `contextDestroyed(javax.servlet.ServletContextEvent)` lifecycle method is invoked on this listener.

  Parameters:
    `context` - the application context to manage
  See Also:
    `contextInitialized(ServletContextEvent)`, `contextDestroyed(ServletContextEvent)`

Method Detail

### contextInitialized

    public void contextInitialized(ServletContextEvent event)

  Initialize the root web application context.

  Specified by:
    `contextInitialized` in interface `ServletContextListener`

### createContextLoader

    @Deprecated
    protected ContextLoader createContextLoader()

  Deprecated. in favor of simply subclassing ContextLoaderListener itself (which extends ContextLoader, as of Spring 3.0)

  Create the ContextLoader to use. Can be overridden in subclasses.

  Returns:
    the new ContextLoader

### getContextLoader

    @Deprecated
    public ContextLoader getContextLoader()

  Deprecated. in favor of simply subclassing ContextLoaderListener itself (which extends ContextLoader, as of Spring 3.0)

  Return the ContextLoader used by this listener.

  Returns:
    the current ContextLoader

### contextDestroyed

    public void contextDestroyed(ServletContextEvent event)

  Close the root web application context.

  Specified by:
    `contextDestroyed` in interface `ServletContextListener`