public abstract class

AbstractRefreshableWebApplicationContext

extends AbstractRefreshableConfigApplicationContext
implements ThemeSource ConfigurableWebApplicationContext
java.lang.Object
   ↳ org.springframework.core.io.DefaultResourceLoader
     ↳ org.springframework.context.support.AbstractApplicationContext
       ↳ org.springframework.context.support.AbstractRefreshableApplicationContext
         ↳ org.springframework.context.support.AbstractRefreshableConfigApplicationContext
           ↳ org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
Known Direct Subclasses

Class Overview

AbstractRefreshableApplicationContext subclass which implements the ConfigurableWebApplicationContext interface for web environments. Provides a "configLocations" property, to be populated through the ConfigurableWebApplicationContext interface on web application startup.

This class is as easy to subclass as AbstractRefreshableApplicationContext: All you need to implements is the loadBeanDefinitions(DefaultListableBeanFactory) method; see the superclass javadoc for details. Note that implementations are supposed to load bean definitions from the files specified by the locations returned by the getConfigLocations() method.

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".

This is the web context to be subclassed for a different bean definition format. Such a context implementation can be specified as "contextClass" context-param for ContextLoader or as "contextClass" init-param for FrameworkServlet, replacing the default XmlWebApplicationContext. It will then automatically receive the "contextConfigLocation" context-param or init-param, respectively.

Note that WebApplicationContext implementations are generally supposed to configure themselves based on the configuration received through the ConfigurableWebApplicationContext interface. In contrast, a standalone application context might allow for configuration in custom startup code (for example, GenericApplicationContext).

Summary

[Expand]
Inherited Constants
From class org.springframework.context.support.AbstractApplicationContext
From interface org.springframework.beans.factory.BeanFactory
From interface org.springframework.context.ConfigurableApplicationContext
From interface org.springframework.core.io.ResourceLoader
From interface org.springframework.core.io.support.ResourcePatternResolver
From interface org.springframework.web.context.ConfigurableWebApplicationContext
From interface org.springframework.web.context.WebApplicationContext
[Expand]
Inherited Fields
From class org.springframework.context.support.AbstractApplicationContext
From interface org.springframework.web.context.ConfigurableWebApplicationContext
From interface org.springframework.web.context.WebApplicationContext
Public Constructors
AbstractRefreshableWebApplicationContext()
Public Methods
String[] getConfigLocations()
Return an array of resource locations, referring to the XML bean definition files that this context should be built with.
String getNamespace()
Return the namespace for this web application context, if any.
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.
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 for this web application context.
Protected Methods
ConfigurableEnvironment createEnvironment()
Create and return a new DefaultWebEnvironment.
Resource getResourceByPath(String path)
This implementation supports file paths beneath the root of the ServletContext.
ResourcePatternResolver getResourcePatternResolver()
This implementation supports pattern matching in unexpanded WARs too.
void initPropertySources()

Replace any stub property sources with actual instances.

Replace Servlet-related property sources.

void onRefresh()
Initialize the theme capability.
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Register request/session scopes, a ServletContextAwareProcessor, etc.
[Expand]
Inherited Methods
From class org.springframework.context.support.AbstractRefreshableConfigApplicationContext
From class org.springframework.context.support.AbstractRefreshableApplicationContext
From class org.springframework.context.support.AbstractApplicationContext
From class org.springframework.core.io.DefaultResourceLoader
From class java.lang.Object
From interface org.springframework.beans.factory.BeanFactory
From interface org.springframework.beans.factory.BeanNameAware
From interface org.springframework.beans.factory.DisposableBean
From interface org.springframework.beans.factory.HierarchicalBeanFactory
From interface org.springframework.beans.factory.InitializingBean
From interface org.springframework.beans.factory.ListableBeanFactory
From interface org.springframework.context.ApplicationContext
From interface org.springframework.context.ApplicationEventPublisher
From interface org.springframework.context.ConfigurableApplicationContext
From interface org.springframework.context.Lifecycle
From interface org.springframework.context.MessageSource
From interface org.springframework.core.env.EnvironmentCapable
From interface org.springframework.core.io.ResourceLoader
From interface org.springframework.core.io.support.ResourcePatternResolver
From interface org.springframework.ui.context.ThemeSource
From interface org.springframework.web.context.ConfigurableWebApplicationContext
From interface org.springframework.web.context.WebApplicationContext

Public Constructors

public AbstractRefreshableWebApplicationContext ()

Public Methods

public String[] getConfigLocations ()

Return an array of resource locations, referring to the XML bean definition files that this context should be built with. Can also include location patterns, which will get resolved via a ResourcePatternResolver.

The default implementation returns null. Subclasses can override this to provide a set of resource locations to load bean definitions from.

Returns
  • an array of resource locations, or null if none

public String getNamespace ()

Return the namespace for this web application context, if any.

public ServletConfig getServletConfig ()

Return the ServletConfig for this web application context, if any.

public ServletContext getServletContext ()

Return the standard Servlet API ServletContext for this application.

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

public Theme getTheme (String themeName)

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).

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.

public void setNamespace (String namespace)

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.

public void setServletConfig (ServletConfig servletConfig)

Set the ServletConfig for this web application context. Only called for a WebApplicationContext that belongs to a specific Servlet.

public void setServletContext (ServletContext servletContext)

Set the ServletContext for this web application context.

Does not cause an initialization of the context: refresh needs to be called after the setting of all configuration properties.

Protected Methods

protected ConfigurableEnvironment createEnvironment ()

Create and return a new DefaultWebEnvironment.

protected Resource getResourceByPath (String path)

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

Parameters
path the path to the resource
Returns
  • the corresponding Resource handle

protected ResourcePatternResolver getResourcePatternResolver ()

This implementation supports pattern matching in unexpanded WARs too.

Returns
  • the ResourcePatternResolver for this context

protected void initPropertySources ()

Replace any stub property sources with actual instances.

Replace Servlet-related property sources.

protected void onRefresh ()

Initialize the theme capability.

protected void postProcessBeanFactory (ConfigurableListableBeanFactory beanFactory)

Register request/session scopes, a ServletContextAwareProcessor, etc.

Parameters
beanFactory the bean factory used by the application context