Class AbstractXmlApplicationContext
- 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.context.support.AbstractXmlApplicationContext
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Aware
,BeanFactory
,BeanNameAware
,DisposableBean
,HierarchicalBeanFactory
,InitializingBean
,ListableBeanFactory
,ApplicationContext
,ApplicationEventPublisher
,ConfigurableApplicationContext
,Lifecycle
,MessageSource
,EnvironmentCapable
,ResourceLoader
,ResourcePatternResolver
- Direct Known Subclasses:
ClassPathXmlApplicationContext
,FileSystemXmlApplicationContext
public abstract class AbstractXmlApplicationContext extends AbstractRefreshableConfigApplicationContext
Convenient base class forApplicationContext
implementations, drawing configuration from XML documents containing bean definitions understood by anXmlBeanDefinitionReader
.Subclasses just have to implement the
getConfigResources()
and/or theAbstractRefreshableConfigApplicationContext.getConfigLocations()
method. Furthermore, they might override theDefaultResourceLoader.getResourceByPath(java.lang.String)
hook to interpret relative paths in an environment-specific fashion, and/orAbstractApplicationContext.getResourcePatternResolver()
for extended pattern resolution.- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
getConfigResources()
,AbstractRefreshableConfigApplicationContext.getConfigLocations()
,XmlBeanDefinitionReader
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoader
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
Fields inherited from interface org.springframework.context.ConfigurableApplicationContext
CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_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
Constructor Summary
Constructors Constructor Description AbstractXmlApplicationContext()
Create a new AbstractXmlApplicationContext with no parent.AbstractXmlApplicationContext(ApplicationContext parent)
Create a new AbstractXmlApplicationContext with the given parent context.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Resource[]
getConfigResources()
Return an array of Resource objects, referring to the XML bean definition files that this context should be built with.protected void
initBeanDefinitionReader(XmlBeanDefinitionReader reader)
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
loadBeanDefinitions(XmlBeanDefinitionReader reader)
Load the bean definitions with the given XmlBeanDefinitionReader.void
setValidating(boolean validating)
Set whether to use XML validation.Methods inherited from class org.springframework.context.support.AbstractRefreshableConfigApplicationContext
afterPropertiesSet, getConfigLocations, getDefaultConfigLocations, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setId
Methods inherited from class org.springframework.context.support.AbstractRefreshableApplicationContext
assertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences
Methods inherited from class org.springframework.context.support.AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResourcePatternResolver, getResources, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setDisplayName, setEnvironment, setParent, start, stop, toString
Methods inherited from class org.springframework.core.io.DefaultResourceLoader
addProtocolResolver, getClassLoader, getProtocolResolvers, getResource, getResourceByPath, 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
addProtocolResolver
Methods inherited from interface org.springframework.core.io.ResourceLoader
getClassLoader, getResource
Constructor Detail
AbstractXmlApplicationContext
public AbstractXmlApplicationContext()
Create a new AbstractXmlApplicationContext with no parent.
AbstractXmlApplicationContext
public AbstractXmlApplicationContext(ApplicationContext parent)
Create a new AbstractXmlApplicationContext with the given parent context.- Parameters:
parent
- the parent context
Method Detail
setValidating
public void setValidating(boolean validating)
Set whether to use XML validation. Default istrue
.
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:
XmlBeanDefinitionReader
,initBeanDefinitionReader(org.springframework.beans.factory.xml.XmlBeanDefinitionReader)
,loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory)
initBeanDefinitionReader
protected void initBeanDefinitionReader(XmlBeanDefinitionReader reader)
Initialize the bean definition reader used for loading the bean definitions of this context. Default implementation is empty.Can be overridden in subclasses, e.g. for turning off XML validation or using a different XmlBeanDefinitionParser implementation.
- Parameters:
reader
- the bean definition reader used by this context- See Also:
XmlBeanDefinitionReader.setDocumentReaderClass(java.lang.Class<?>)
loadBeanDefinitions
protected void loadBeanDefinitions(XmlBeanDefinitionReader reader) throws BeansException, IOException
Load the bean definitions with the given XmlBeanDefinitionReader.The lifecycle of the bean factory is handled by the
AbstractRefreshableApplicationContext.refreshBeanFactory()
method; hence this method is just supposed to load and/or register bean definitions.- Parameters:
reader
- the XmlBeanDefinitionReader to use- Throws:
BeansException
- in case of bean registration errorsIOException
- if the required XML document isn't found- See Also:
AbstractRefreshableApplicationContext.refreshBeanFactory()
,AbstractRefreshableConfigApplicationContext.getConfigLocations()
,AbstractApplicationContext.getResources(java.lang.String)
,AbstractApplicationContext.getResourcePatternResolver()
getConfigResources
protected Resource[] getConfigResources()
Return an array of Resource objects, referring to the XML bean definition files that this context should be built with.The default implementation returns
null
. Subclasses can override this to provide pre-built Resource objects rather than location Strings.- Returns:
- an array of Resource objects, or
null
if none - See Also:
AbstractRefreshableConfigApplicationContext.getConfigLocations()