| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.web.context.ContextLoader
public class ContextLoader
Performs the actual initialization work for the root application context.
 Called by ContextLoaderListener.
 
Looks for a "contextClass" parameter
 at the web.xml context-param level to specify the context
 class type, falling back to the default of
 XmlWebApplicationContext
 if not found. With the default ContextLoader implementation, any context class
 specified needs to implement the ConfigurableWebApplicationContext interface.
 
Processes a "contextConfigLocation"
 context-param and passes its value to the context instance, parsing it into
 potentially multiple file paths which can be separated by any number of
 commas and spaces, e.g. "WEB-INF/applicationContext1.xml,
 WEB-INF/applicationContext2.xml". Ant-style path patterns are supported as well,
 e.g. "WEB-INF/*Context.xml,WEB-INF/spring*.xml" or "WEB-INF/**/*Context.xml".
 If not explicitly specified, the context implementation is supposed to use a
 default location (with XmlWebApplicationContext: "/WEB-INF/applicationContext.xml").
 
Note: In case of multiple config locations, later bean definitions will override ones defined in previously loaded files, at least when using one of Spring's default ApplicationContext implementations. This can be leveraged to deliberately override certain bean definitions via an extra XML file.
Above and beyond loading the root application context, this class
 can optionally load or obtain and hook up a shared parent context to
 the root application context. See the
 loadParentContext(ServletContext) method for more information.
ContextLoaderListener, 
ConfigurableWebApplicationContext, 
XmlWebApplicationContext| Field Summary | |
|---|---|
| static String | CONFIG_LOCATION_PARAMName of servlet context parameter (i.e., " contextConfigLocation")
 that can specify the config location for the root context, falling back
 to the implementation's default otherwise. | 
| static String | CONTEXT_CLASS_PARAMConfig param for the root WebApplicationContext implementation class to use: " contextClass" | 
| static String | CONTEXT_ID_PARAMConfig param for the root WebApplicationContext id, to be used as serialization id for the underlying BeanFactory: " contextId" | 
| static String | LOCATOR_FACTORY_KEY_PARAMOptional servlet context parameter (i.e., " parentContextKey")
 used only when obtaining a parent context using the default implementation
 ofloadParentContext(ServletContext servletContext). | 
| static String | LOCATOR_FACTORY_SELECTOR_PARAMOptional servlet context parameter (i.e., " locatorFactorySelector")
 used only when obtaining a parent context using the default implementation
 ofloadParentContext(ServletContext servletContext). | 
| Constructor Summary | |
|---|---|
| ContextLoader() | |
| Method Summary | |
|---|---|
|  void | closeWebApplicationContext(ServletContext servletContext)Close Spring's web application context for the given servlet context. | 
| protected  WebApplicationContext | createWebApplicationContext(ServletContext sc,
                            ApplicationContext parent)Instantiate the root WebApplicationContext for this loader, either the default context class or a custom context class if specified. | 
| protected  void | customizeContext(ServletContext servletContext,
                 ConfigurableWebApplicationContext applicationContext)Customize the ConfigurableWebApplicationContextcreated by this
 ContextLoader after config locations have been supplied to the context
 but before the context is refreshed. | 
| protected  Class<?> | determineContextClass(ServletContext servletContext)Return the WebApplicationContext implementation class to use, either the default XmlWebApplicationContext or a custom context class if specified. | 
| static WebApplicationContext | getCurrentWebApplicationContext()Obtain the Spring root web application context for the current thread (i.e. | 
|  WebApplicationContext | initWebApplicationContext(ServletContext servletContext)Initialize Spring's web application context for the given servlet context, according to the " contextClass" and
 "contextConfigLocation" context-params. | 
| protected  ApplicationContext | loadParentContext(ServletContext servletContext)Template method with default implementation (which may be overridden by a subclass), to load or obtain an ApplicationContext instance which will be used as the parent context of the root WebApplicationContext. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public static final String CONTEXT_CLASS_PARAM
contextClass"
public static final String CONTEXT_ID_PARAM
contextId"
public static final String CONFIG_LOCATION_PARAM
contextConfigLocation")
 that can specify the config location for the root context, falling back
 to the implementation's default otherwise.
XmlWebApplicationContext.DEFAULT_CONFIG_LOCATION, 
Constant Field Valuespublic static final String LOCATOR_FACTORY_SELECTOR_PARAM
locatorFactorySelector")
 used only when obtaining a parent context using the default implementation
 of loadParentContext(ServletContext servletContext).
 Specifies the 'selector' used in the
 ContextSingletonBeanFactoryLocator.getInstance(String selector)
 method call, which is used to obtain the BeanFactoryLocator instance from
 which the parent context is obtained.
 The default is classpath*:beanRefContext.xml,
 matching the default applied for the
 ContextSingletonBeanFactoryLocator.getInstance() method.
 Supplying the "parentContextKey" parameter is sufficient in this case.
public static final String LOCATOR_FACTORY_KEY_PARAM
parentContextKey")
 used only when obtaining a parent context using the default implementation
 of loadParentContext(ServletContext servletContext).
 Specifies the 'factoryKey' used in the
 BeanFactoryLocator.useBeanFactory(String factoryKey) method call,
 obtaining the parent application context from the BeanFactoryLocator instance.
 Supplying this "parentContextKey" parameter is sufficient when relying
 on the default classpath*:beanRefContext.xml selector for
 candidate factory references.
| Constructor Detail | 
|---|
public ContextLoader()
| Method Detail | 
|---|
public WebApplicationContext initWebApplicationContext(ServletContext servletContext)
contextClass" and
 "contextConfigLocation" context-params.
servletContext - current servlet context
CONTEXT_CLASS_PARAM, 
CONFIG_LOCATION_PARAM
protected WebApplicationContext createWebApplicationContext(ServletContext sc,
                                                            ApplicationContext parent)
This implementation expects custom contexts to implement the
 ConfigurableWebApplicationContext interface.
 Can be overridden in subclasses.
 
In addition, customizeContext(javax.servlet.ServletContext, org.springframework.web.context.ConfigurableWebApplicationContext) gets called prior to refreshing the
 context, allowing subclasses to perform custom modifications to the context.
sc - current servlet contextparent - the parent ApplicationContext to use, or null if none
ConfigurableWebApplicationContextprotected Class<?> determineContextClass(ServletContext servletContext)
servletContext - current servlet context
CONTEXT_CLASS_PARAM, 
XmlWebApplicationContext
protected void customizeContext(ServletContext servletContext,
                                ConfigurableWebApplicationContext applicationContext)
ConfigurableWebApplicationContext created by this
 ContextLoader after config locations have been supplied to the context
 but before the context is refreshed.
 The default implementation is empty but can be overridden in subclasses to customize the application context.
servletContext - the current servlet contextapplicationContext - the newly created application contextcreateWebApplicationContext(ServletContext, ApplicationContext)protected ApplicationContext loadParentContext(ServletContext servletContext)
The main reason to load a parent context here is to allow multiple root web application contexts to all be children of a shared EAR context, or alternately to also share the same parent context that is visible to EJBs. For pure web applications, there is usually no need to worry about having a parent context to the root web application context.
The default implementation uses
 ContextSingletonBeanFactoryLocator,
 configured via LOCATOR_FACTORY_SELECTOR_PARAM and
 LOCATOR_FACTORY_KEY_PARAM, to load a parent context
 which will be shared by all other users of ContextsingletonBeanFactoryLocator
 which also use the same configuration parameters.
servletContext - current servlet context
null if noneContextSingletonBeanFactoryLocatorpublic void closeWebApplicationContext(ServletContext servletContext)
loadParentContext(ServletContext) implementation,
 which uses ContextSingletonBeanFactoryLocator, has loaded any shared
 parent context, release one reference to that shared parent context.
 If overriding loadParentContext(ServletContext), you may have
 to override this method as well.
servletContext - the ServletContext that the WebApplicationContext runs inpublic static WebApplicationContext getCurrentWebApplicationContext()
null
 if none foundSpringBeanAutowiringSupport| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||