public class GenericWebApplicationContext extends org.springframework.context.support.GenericApplicationContext implements ConfigurableWebApplicationContext, org.springframework.ui.context.ThemeSource
GenericApplicationContext, suitable for web environments.
Implements ConfigurableWebApplicationContext, but is not intended for
declarative setup in web.xml. Instead, it is designed for programmatic setup,
for example for building nested contexts or for use within
WebApplicationInitializers.
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 AbstractApplicationContext.
In addition to the special beans detected by
AbstractApplicationContext,
this class detects a ThemeSource bean in the context, with the name "themeSource".
If you wish to register annotated component classes with a
GenericWebApplicationContext, you can use an
AnnotatedBeanDefinitionReader, as demonstrated in the following example.
Component classes include in particular
@Configuration
classes but also plain @Component
classes as well as JSR-330 compliant classes using javax.inject annotations.
GenericWebApplicationContext context = new GenericWebApplicationContext(); AnnotatedBeanDefinitionReader reader = new AnnotatedBeanDefinitionReader(context); reader.register(AppConfig.class, UserController.class, UserRepository.class);
If you intend to implement a WebApplicationContext that reads bean definitions
from configuration files, consider deriving from AbstractRefreshableWebApplicationContext,
reading the bean definitions in an implementation of the loadBeanDefinitions
method.
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEAPPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAMECONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAMEAPPLICATION_STARTUP_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| Constructor and Description |
|---|
GenericWebApplicationContext()
Create a new
GenericWebApplicationContext. |
GenericWebApplicationContext(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
Create a new
GenericWebApplicationContext with the given DefaultListableBeanFactory. |
GenericWebApplicationContext(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory,
ServletContext servletContext)
Create a new
GenericWebApplicationContext with the given DefaultListableBeanFactory
and ServletContext. |
GenericWebApplicationContext(ServletContext servletContext)
Create a new
GenericWebApplicationContext for the given ServletContext. |
| Modifier and Type | Method and Description |
|---|---|
protected org.springframework.core.env.ConfigurableEnvironment |
createEnvironment()
Create and return a new
StandardServletEnvironment. |
String |
getApplicationName() |
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) |
protected void |
initPropertySources() |
protected void |
onRefresh()
Initialize the theme capability.
|
protected void |
postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
Register request/session scopes, environment beans, a
ServletContextAwareProcessor, etc. |
void |
setConfigLocation(String configLocation)
Set the config locations for this web application context in init-param style,
i.e.
|
void |
setConfigLocations(String... configLocations)
Set the config locations for this web application context.
|
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. |
cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoaderaddApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, 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, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setDisplayName, setEnvironment, setId, start, stop, toStringaddProtocolResolver, clearResourceCaches, getProtocolResolvers, getResourceCacheclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, refresh, registerShutdownHook, setApplicationStartup, setClassLoader, setEnvironment, setId, setParentgetAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDatecontainsBeanDefinition, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationcontainsLocalBean, getParentBeanFactorycontainsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchgetMessage, getMessage, getMessagepublishEvent, publishEventgetResourcesgetClassLoader, getResourcepublic GenericWebApplicationContext()
GenericWebApplicationContext.setServletContext(javax.servlet.ServletContext),
GenericApplicationContext.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition),
AbstractApplicationContext.refresh()public GenericWebApplicationContext(ServletContext servletContext)
GenericWebApplicationContext for the given ServletContext.servletContext - the ServletContext to run inGenericApplicationContext.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition),
AbstractApplicationContext.refresh()public GenericWebApplicationContext(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
GenericWebApplicationContext with the given DefaultListableBeanFactory.beanFactory - the DefaultListableBeanFactory instance to use for this contextsetServletContext(javax.servlet.ServletContext),
GenericApplicationContext.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition),
AbstractApplicationContext.refresh()public GenericWebApplicationContext(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory,
ServletContext servletContext)
GenericWebApplicationContext with the given DefaultListableBeanFactory
and ServletContext.beanFactory - the DefaultListableBeanFactory instance to use for this contextservletContext - the ServletContext to run inGenericApplicationContext.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition),
AbstractApplicationContext.refresh()public void setServletContext(@Nullable
ServletContext servletContext)
ServletContext that this WebApplicationContext runs in.setServletContext in interface ConfigurableWebApplicationContextConfigurableApplicationContext.refresh()@Nullable public ServletContext getServletContext()
WebApplicationContextgetServletContext in interface WebApplicationContextpublic String getApplicationName()
getApplicationName in interface org.springframework.context.ApplicationContextgetApplicationName in class org.springframework.context.support.AbstractApplicationContextprotected org.springframework.core.env.ConfigurableEnvironment createEnvironment()
StandardServletEnvironment.createEnvironment in class org.springframework.context.support.AbstractApplicationContextprotected void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
ServletContextAwareProcessor, etc.postProcessBeanFactory in class org.springframework.context.support.AbstractApplicationContextprotected org.springframework.core.io.Resource getResourceByPath(String path)
ServletContext.getResourceByPath in class org.springframework.core.io.DefaultResourceLoaderServletContextResourceprotected org.springframework.core.io.support.ResourcePatternResolver getResourcePatternResolver()
getResourcePatternResolver in class org.springframework.context.support.AbstractApplicationContextServletContextResourcePatternResolverprotected void onRefresh()
onRefresh in class org.springframework.context.support.AbstractApplicationContextprotected void initPropertySources()
Replace Servlet-related property sources.
initPropertySources in class org.springframework.context.support.AbstractApplicationContext@Nullable public org.springframework.ui.context.Theme getTheme(String themeName)
getTheme in interface org.springframework.ui.context.ThemeSourcepublic void setServletConfig(@Nullable
ServletConfig servletConfig)
ConfigurableWebApplicationContextsetServletConfig in interface ConfigurableWebApplicationContextConfigurableApplicationContext.refresh()@Nullable public ServletConfig getServletConfig()
ConfigurableWebApplicationContextgetServletConfig in interface ConfigurableWebApplicationContextpublic void setNamespace(@Nullable
String namespace)
ConfigurableWebApplicationContextsetNamespace in interface ConfigurableWebApplicationContext@Nullable public String getNamespace()
ConfigurableWebApplicationContextgetNamespace in interface ConfigurableWebApplicationContextpublic void setConfigLocation(String configLocation)
ConfigurableWebApplicationContextIf not set, the implementation is supposed to use a default for the given namespace or the root web application context, as appropriate.
setConfigLocation in interface ConfigurableWebApplicationContextpublic void setConfigLocations(String... configLocations)
ConfigurableWebApplicationContextIf not set, the implementation is supposed to use a default for the given namespace or the root web application context, as appropriate.
setConfigLocations in interface ConfigurableWebApplicationContextpublic String[] getConfigLocations()
ConfigurableWebApplicationContextnull if none specified.getConfigLocations in interface ConfigurableWebApplicationContext