Class XmlWebApplicationContext
- All Implemented Interfaces:
Closeable, AutoCloseable, Aware, BeanFactory, BeanNameAware, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, EnvironmentCapable, ResourceLoader, ResourcePatternResolver, ConfigurableWebApplicationContext, WebApplicationContext
WebApplicationContext
implementation
which takes its configuration from XML documents, understood by an
XmlBeanDefinitionReader
.
This is essentially the equivalent of
GenericXmlApplicationContext
for a web environment.
By default, the configuration will be taken from "/WEB-INF/applicationContext.xml" for the root context, and "/WEB-INF/test-servlet.xml" for a context with the namespace "test-servlet" (like for a DispatcherServlet instance with the servlet-name "test").
The config location defaults can be overridden via the "contextConfigLocation"
context-param of ContextLoader
and servlet
init-param of FrameworkServlet
. Config locations
can either denote concrete files like "/WEB-INF/context.xml" or Ant-style patterns
like "/WEB-INF/*-context.xml" (see PathMatcher
javadoc for pattern details).
Note: In case of multiple config locations, later bean definitions will override ones defined in earlier loaded files. This can be leveraged to deliberately override certain bean definitions via an extra XML file.
For a WebApplicationContext that reads in a different bean definition format,
create an analogous subclass of AbstractRefreshableWebApplicationContext
.
Such a context implementation can be specified as "contextClass" context-param
for ContextLoader or "contextClass" init-param for FrameworkServlet.
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class DefaultResourceLoader
DefaultResourceLoader.ClassPathContextResource
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Default config location for the root context.static final String
Default prefix for building a config location for a namespace.static final String
Default suffix for building a config location for a namespace.Fields inherited from class AbstractApplicationContext
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME
Fields inherited from interface BeanFactory
FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHAR
Fields inherited from interface 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 ConfigurableWebApplicationContext
APPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAME
Fields inherited from interface ResourceLoader
CLASSPATH_URL_PREFIX
Fields inherited from interface ResourcePatternResolver
CLASSPATH_ALL_URL_PREFIX
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String[]
The default location for the root context is "/WEB-INF/applicationContext.xml", and "/WEB-INF/test-servlet.xml" for a context with the namespace "test-servlet" (like for a DispatcherServlet instance with the servlet-name "test").protected void
initBeanDefinitionReader
(XmlBeanDefinitionReader beanDefinitionReader) Initialize the bean definition reader used for loading the bean definitions of this context.protected void
loadBeanDefinitions
(DefaultListableBeanFactory beanFactory) Loads the bean definitions via an XmlBeanDefinitionReader.protected void
Load the bean definitions with the given XmlBeanDefinitionReader.Methods inherited from class AbstractRefreshableWebApplicationContext
createEnvironment, getApplicationName, getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, initPropertySources, postProcessBeanFactory, setNamespace, setServletConfig, setServletContext
Methods inherited from class AbstractRefreshableConfigApplicationContext
afterPropertiesSet, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setId
Methods inherited from class AbstractRefreshableApplicationContext
assertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences
Methods inherited from class AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationStartup, getAutowireCapableBeanFactory, 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, getResources, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, pause, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, restart, setApplicationStartup, setDisplayName, setEnvironment, setParent, start, stop, toString
Methods inherited from class DefaultResourceLoader
addProtocolResolver, getClassLoader, getProtocolResolvers, getResource, getResourceCache, setClassLoader
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ApplicationContext
getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate
Methods inherited from interface ApplicationEventPublisher
publishEvent, publishEvent
Methods inherited from interface BeanFactory
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
Methods inherited from interface ConfigurableApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, isClosed, pause, refresh, registerShutdownHook, removeApplicationListener, restart, setApplicationStartup, setClassLoader, setEnvironment, setId, setParent
Methods inherited from interface ConfigurableWebApplicationContext
setConfigLocation, setConfigLocations
Methods inherited from interface HierarchicalBeanFactory
containsLocalBean, getParentBeanFactory
Methods inherited from interface ListableBeanFactory
containsBeanDefinition, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation
Methods inherited from interface MessageSource
getMessage, getMessage, getMessage
Methods inherited from interface ResourceLoader
getClassLoader, getResource
Methods inherited from interface ResourcePatternResolver
getResources
-
Field Details
-
DEFAULT_CONFIG_LOCATION
Default config location for the root context.- See Also:
-
DEFAULT_CONFIG_LOCATION_PREFIX
Default prefix for building a config location for a namespace.- See Also:
-
DEFAULT_CONFIG_LOCATION_SUFFIX
Default suffix for building a config location for a namespace.- See Also:
-
-
Constructor Details
-
XmlWebApplicationContext
public XmlWebApplicationContext()
-
-
Method Details
-
loadBeanDefinitions
protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws BeansException, IOException Loads the bean definitions via an XmlBeanDefinitionReader.- Specified by:
loadBeanDefinitions
in classAbstractRefreshableApplicationContext
- Parameters:
beanFactory
- the bean factory to load bean definitions into- Throws:
BeansException
- if parsing of the bean definitions failedIOException
- if loading of bean definition files failed- See Also:
-
initBeanDefinitionReader
Initialize the bean definition reader used for loading the bean definitions of this context. Default implementation is empty.Can be overridden in subclasses, for example, for turning off XML validation or using a different XmlBeanDefinitionParser implementation.
- Parameters:
beanDefinitionReader
- the bean definition reader used by this context- See Also:
-
loadBeanDefinitions
Load the bean definitions with the given XmlBeanDefinitionReader.The lifecycle of the bean factory is handled by the refreshBeanFactory method; therefore this method is just supposed to load and/or register bean definitions.
Delegates to a ResourcePatternResolver for resolving location patterns into Resource instances.
- Throws:
IOException
- if the required XML document isn't found- See Also:
-
getDefaultConfigLocations
The default location for the root context is "/WEB-INF/applicationContext.xml", and "/WEB-INF/test-servlet.xml" for a context with the namespace "test-servlet" (like for a DispatcherServlet instance with the servlet-name "test").- Overrides:
getDefaultConfigLocations
in classAbstractRefreshableConfigApplicationContext
- Returns:
- an array of default config locations, if any
- See Also:
-