Package 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:
  `Closeable`, `AutoCloseable`, `org.springframework.beans.factory.BeanFactory`, `org.springframework.beans.factory.HierarchicalBeanFactory`, `org.springframework.beans.factory.ListableBeanFactory`, `org.springframework.beans.factory.support.BeanDefinitionRegistry`, `org.springframework.context.ApplicationContext`, `org.springframework.context.ApplicationEventPublisher`, `org.springframework.context.ConfigurableApplicationContext`, `org.springframework.context.Lifecycle`, `org.springframework.context.MessageSource`, `org.springframework.core.AliasRegistry`, `org.springframework.core.env.EnvironmentCapable`, `org.springframework.core.io.ResourceLoader`, `org.springframework.core.io.support.ResourcePatternResolver`, `org.springframework.ui.context.ThemeSource`, `ConfigurableWebApplicationContext`, `WebApplicationContext`

public class StaticWebApplicationContext extends org.springframework.context.support.StaticApplicationContext implements ConfigurableWebApplicationContext, org.springframework.ui.context.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, for example, 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". Theme support is deprecated as of 6.0 with no direct replacement.

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

## Nested Class Summary

## Nested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoader

`org.springframework.core.io.DefaultResourceLoader.ClassPathContextResource`

## 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.beans.factory.BeanFactory

`FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHAR`

### Fields inherited from interface org.springframework.context.ConfigurableApplicationContext

`APPLICATION_STARTUP_BEAN_NAME, BOOTSTRAP_EXECUTOR_BEAN_NAME, CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SHUTDOWN_HOOK_THREAD_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_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.core.io.ResourceLoader

`CLASSPATH_URL_PREFIX`

### Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver

`CLASSPATH_ALL_URL_PREFIX`

### 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_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAME`

## Constructor Summary

Constructors
Constructor
Description
`StaticWebApplicationContext()`

## Method Summary

Modifier and Type
Method
Description
`protected org.springframework.core.env.ConfigurableEnvironment`
`createEnvironment()`
Create and return a new `StandardServletEnvironment`.
`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 org.springframework.core.io.Resource`
`getResourceByPath(String path)`
This implementation supports file paths beneath the root of the ServletContext.
`protected org.springframework.core.io.support.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.
`org.springframework.ui.context.Theme`
`getTheme(String themeName)`
Deprecated.
`protected void`
`initPropertySources()`
`protected void`
`onRefresh()`
Initialize the theme capability.
`protected void`
`postProcessBeanFactory(org.springframework.beans.factory.config.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, assertBeanFactoryActive, getStaticMessageSource, registerPrototype, registerPrototype, registerSingleton, registerSingleton`

### Methods inherited from class org.springframework.context.support.GenericApplicationContext

`cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanDefinitionOverridable, isBeanNameInUse, refreshBeanFactory, refreshForAotProcessing, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoader`

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

`addApplicationListener, addBeanFactoryPostProcessor, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getApplicationStartup, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setDisplayName, setEnvironment, setId, start, stop, toString`

### Methods inherited from class org.springframework.core.io.DefaultResourceLoader

`addProtocolResolver, getProtocolResolvers, getResourceCache`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.core.AliasRegistry

`getAliases`

### Methods inherited from interface org.springframework.context.ApplicationContext

`getApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate`

### Methods inherited from interface org.springframework.context.ApplicationEventPublisher

`publishEvent, publishEvent`

### Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry

`containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames`

### Methods inherited from interface org.springframework.beans.factory.BeanFactory

`containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch`

### Methods inherited from interface org.springframework.context.ConfigurableApplicationContext

`addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, isClosed, refresh, registerShutdownHook, removeApplicationListener, setApplicationStartup, setClassLoader, setEnvironment, setId, setParent`

### Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory

`containsLocalBean, getParentBeanFactory`

### Methods inherited from interface org.springframework.context.Lifecycle

`isRunning, start, stop`

### Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory

`containsBeanDefinition, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation`

### Methods inherited from interface org.springframework.context.MessageSource

`getMessage, getMessage, getMessage`

### Methods inherited from interface org.springframework.core.io.ResourceLoader

`getClassLoader, getResource`

### Methods inherited from interface org.springframework.core.io.support.ResourcePatternResolver

`getResources`

## Constructor Details

### StaticWebApplicationContext

public StaticWebApplicationContext()

## Method Details

### setServletContext

public void setServletContext(@Nullable ServletContext servletContext)
Set the ServletContext that this WebApplicationContext runs in.

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

### getServletContext

@Nullable public ServletContext getServletContext()
Description copied from interface: `WebApplicationContext`
Return the standard Servlet API ServletContext for this application.

Specified by:
  `getServletContext` in interface `WebApplicationContext`

### setServletConfig

public void setServletConfig(@Nullable 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

@Nullable 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(@Nullable 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

@Nullable 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

@Nullable 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(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
Register request/session scopes, a `ServletContextAwareProcessor`, etc.

Overrides:
  `postProcessBeanFactory` in class `org.springframework.context.support.AbstractApplicationContext`

### getResourceByPath

protected org.springframework.core.io.Resource getResourceByPath(String path)
This implementation supports file paths beneath the root of the ServletContext.

Overrides:
  `getResourceByPath` in class `org.springframework.core.io.DefaultResourceLoader`
See Also:
  - `ServletContextResource`

### getResourcePatternResolver

protected org.springframework.core.io.support.ResourcePatternResolver getResourcePatternResolver()
This implementation supports pattern matching in unexpanded WARs too.

Overrides:
  `getResourcePatternResolver` in class `org.springframework.context.support.AbstractApplicationContext`
See Also:
  - `ServletContextResourcePatternResolver`

### createEnvironment

protected org.springframework.core.env.ConfigurableEnvironment createEnvironment()
Create and return a new `StandardServletEnvironment`.

Overrides:
  `createEnvironment` in class `org.springframework.context.support.AbstractApplicationContext`

### onRefresh

protected void onRefresh()
Initialize the theme capability.

Overrides:
  `onRefresh` in class `org.springframework.context.support.AbstractApplicationContext`

### initPropertySources

protected void initPropertySources()

Overrides:
  `initPropertySources` in class `org.springframework.context.support.AbstractApplicationContext`

### getTheme

@Nullable @Deprecated public org.springframework.ui.context.Theme getTheme(String themeName)
Deprecated.

Specified by:
  `getTheme` in interface `org.springframework.ui.context.ThemeSource`