org.springframework.web.context
Class ContextLoaderListener

java.lang.Object
  extended by org.springframework.web.context.ContextLoader
      extended by 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 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