## org.springframework.web.context.support
Class StaticWebApplicationContext

    java.lang.Object
      org.springframework.core.io.DefaultResourceLoader
          org.springframework.context.support.AbstractApplicationContext
              org.springframework.context.support.GenericApplicationContext
                  org.springframework.context.support.StaticApplicationContext
                      org.springframework.web.context.support.StaticWebApplicationContext

All Implemented Interfaces:
  BeanFactory, DisposableBean, HierarchicalBeanFactory, ListableBeanFactory, BeanDefinitionRegistry, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, AliasRegistry, ResourceLoader, ResourcePatternResolver, ThemeSource, ConfigurableWebApplicationContext, WebApplicationContext

    public class StaticWebApplicationContext

extends StaticApplicationContext
implements ConfigurableWebApplicationContext, ThemeSource

Static `WebApplicationContext` implementation for testing. Not intended for use in production applications.

Implements the `ConfigurableWebApplicationContext` interface to allow for direct replacement of an `XmlWebApplicationContext`, despite not actually supporting external configuration files.

Interprets resource paths as servlet context resources, i.e. as paths beneath the web application root. Absolute paths, e.g. for files outside the web app root, can be accessed via "file:" URLs, as implemented by `DefaultResourceLoader`.

In addition to the special beans detected by `AbstractApplicationContext`, this class detects a bean of type `ThemeSource` in the context, under the special bean name "themeSource".

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `ThemeSource`

Field Summary

Fields inherited from class org.springframework.context.support.AbstractApplicationContext
`APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME`

Fields inherited from interface org.springframework.web.context.ConfigurableWebApplicationContext
`APPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAME`

Fields inherited from interface org.springframework.web.context.WebApplicationContext
`CONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAME`

Fields inherited from interface org.springframework.context.ConfigurableApplicationContext
`CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME`

Fields inherited from interface org.springframework.beans.factory.BeanFactory
`FACTORY_BEAN_PREFIX`

Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver
`CLASSPATH_ALL_URL_PREFIX`

Fields inherited from interface org.springframework.core.io.ResourceLoader
`CLASSPATH_URL_PREFIX`

Constructor Summary
`StaticWebApplicationContext()`

Method Summary
`String[]` `getConfigLocations()` Return the config locations for this web application context, or `null` if none specified.
`String` `getNamespace()` Return the namespace for this web application context, if any.
`protected Resource` `getResourceByPath(String path)` This implementation supports file paths beneath the root of the ServletContext.
`protected ResourcePatternResolver` `getResourcePatternResolver()` This implementation supports pattern matching in unexpanded WARs too.
`ServletConfig` `getServletConfig()` Return the ServletConfig for this web application context, if any.
`ServletContext` `getServletContext()` Return the standard Servlet API ServletContext for this application.
`Theme` `getTheme(String themeName)` Return the Theme instance for the given theme name.
`protected void` `onRefresh()` Initialize the theme capability.
`protected void` `postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)` Register request/session scopes, a `ServletContextAwareProcessor`, etc.
`void` `setConfigLocation(String configLocation)` The `StaticWebApplicationContext` class does not support this method.
`void` `setConfigLocations(String[] configLocations)` The `StaticWebApplicationContext` class does not support this method.
`void` `setNamespace(String namespace)` Set the namespace for this web application context, to be used for building a default context config location.
`void` `setServletConfig(ServletConfig servletConfig)` Set the ServletConfig for this web application context.
`void` `setServletContext(ServletContext servletContext)` Set the ServletContext that this WebApplicationContext runs in.

Methods inherited from class org.springframework.context.support.StaticApplicationContext
`addMessage, getStaticMessageSource, registerPrototype, registerPrototype, registerSingleton, registerSingleton`

Methods inherited from class org.springframework.context.support.GenericApplicationContext
`cancelRefresh, closeBeanFactory, getBeanDefinition, getBeanFactory, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setId, setParent, setResourceLoader`

Methods inherited from class org.springframework.context.support.AbstractApplicationContext

`addApplicationListener, addBeanFactoryPostProcessor, addListener, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, start, stop, toString`

Methods inherited from class org.springframework.core.io.DefaultResourceLoader
`getClassLoader, setClassLoader`

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

Methods inherited from interface org.springframework.context.ConfigurableApplicationContext
`addApplicationListener, addBeanFactoryPostProcessor, close, getBeanFactory, isActive, refresh, registerShutdownHook, setId, setParent`

Methods inherited from interface org.springframework.context.ApplicationContext
`getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate`

Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory
`containsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation`

Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory
`containsLocalBean, getParentBeanFactory`

Methods inherited from interface org.springframework.beans.factory.BeanFactory
`containsBean, getAliases, getBean, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch`

Methods inherited from interface org.springframework.context.MessageSource
`getMessage, getMessage, getMessage`

Methods inherited from interface org.springframework.context.ApplicationEventPublisher
`publishEvent`

Methods inherited from interface org.springframework.core.io.support.ResourcePatternResolver
`getResources`

Methods inherited from interface org.springframework.core.io.ResourceLoader
`getClassLoader, getResource`

Methods inherited from interface org.springframework.context.Lifecycle
`isRunning, start, stop`

Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry
`containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames`

Methods inherited from interface org.springframework.core.AliasRegistry
`getAliases`

Constructor Detail

### StaticWebApplicationContext

    public StaticWebApplicationContext()

Method Detail

### setServletContext

    public void setServletContext(ServletContext servletContext)

  Set the ServletContext that this WebApplicationContext runs in.

  Specified by:
    `setServletContext` in interface `ConfigurableWebApplicationContext`
  See Also:
    `ConfigurableApplicationContext.refresh()`

### getServletContext

    public ServletContext getServletContext()

  Description copied from interface: `WebApplicationContext`
  Return the standard Servlet API ServletContext for this application.

  Also available for a Portlet application, in addition to the PortletContext.

  Specified by:
    `getServletContext` in interface `WebApplicationContext`

### setServletConfig

    public void setServletConfig(ServletConfig servletConfig)

  Description copied from interface: `ConfigurableWebApplicationContext`
  Set the ServletConfig for this web application context. Only called for a WebApplicationContext that belongs to a specific Servlet.

  Specified by:
    `setServletConfig` in interface `ConfigurableWebApplicationContext`
  See Also:
    `ConfigurableApplicationContext.refresh()`

### getServletConfig

    public ServletConfig getServletConfig()

  Description copied from interface: `ConfigurableWebApplicationContext`
  Return the ServletConfig for this web application context, if any.

  Specified by:
    `getServletConfig` in interface `ConfigurableWebApplicationContext`

### setNamespace

    public void setNamespace(String namespace)

  Description copied from interface: `ConfigurableWebApplicationContext`
  Set the namespace for this web application context, to be used for building a default context config location. The root web application context does not have a namespace.

  Specified by:
    `setNamespace` in interface `ConfigurableWebApplicationContext`

### getNamespace

    public String getNamespace()

  Description copied from interface: `ConfigurableWebApplicationContext`
  Return the namespace for this web application context, if any.

  Specified by:
    `getNamespace` in interface `ConfigurableWebApplicationContext`

### setConfigLocation

    public void setConfigLocation(String configLocation)

  The `StaticWebApplicationContext` class does not support this method.

  Specified by:
    `setConfigLocation` in interface `ConfigurableWebApplicationContext`
  Throws:
    `UnsupportedOperationException` - always

### setConfigLocations

    public void setConfigLocations(String[] configLocations)

  The `StaticWebApplicationContext` class does not support this method.

  Specified by:
    `setConfigLocations` in interface `ConfigurableWebApplicationContext`
  Throws:
    `UnsupportedOperationException` - always

### getConfigLocations

    public String[] getConfigLocations()

  Description copied from interface: `ConfigurableWebApplicationContext`
  Return the config locations for this web application context, or `null` if none specified.

  Specified by:
    `getConfigLocations` in interface `ConfigurableWebApplicationContext`

### postProcessBeanFactory

    protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)

  Register request/session scopes, a `ServletContextAwareProcessor`, etc.

  Overrides:
    `postProcessBeanFactory` in class `AbstractApplicationContext`
  Parameters:
    `beanFactory` - the bean factory used by the application context

### getResourceByPath

    protected Resource getResourceByPath(String path)

  This implementation supports file paths beneath the root of the ServletContext.

  Overrides:
    `getResourceByPath` in class `DefaultResourceLoader`
  Parameters:
    `path` - the path to the resource
  Returns:
    the corresponding Resource handle
  See Also:
    `ServletContextResource`

### getResourcePatternResolver

    protected ResourcePatternResolver getResourcePatternResolver()

  This implementation supports pattern matching in unexpanded WARs too.

  Overrides:
    `getResourcePatternResolver` in class `AbstractApplicationContext`
  Returns:
    the ResourcePatternResolver for this context
  See Also:
    `ServletContextResourcePatternResolver`

### onRefresh

    protected void onRefresh()

  Initialize the theme capability.

  Overrides:
    `onRefresh` in class `AbstractApplicationContext`
  See Also:
    `AbstractApplicationContext.refresh()`

### getTheme

    public Theme getTheme(String themeName)

  Description copied from interface: `ThemeSource`
  Return the Theme instance for the given theme name.

  The returned Theme will resolve theme-specific messages, codes, file paths, etc (e.g. CSS and image files in a web environment).

  Specified by:
    `getTheme` in interface `ThemeSource`
  Parameters:
    `themeName` - the name of the theme
  Returns:
    the corresponding Theme, or `null` if none defined. Note that, by convention, a ThemeSource should at least be able to return a default Theme for the default theme name "theme" but may also return default Themes for other theme names.
  See Also:
    `AbstractThemeResolver.ORIGINAL_DEFAULT_THEME_NAME`