public abstract class AbstractXmlApplicationContext extends AbstractRefreshableConfigApplicationContext
ApplicationContext
implementations, drawing configuration from XML documents containing bean definitions
understood by an XmlBeanDefinitionReader
.
Subclasses just have to implement the getConfigResources()
and/or
the AbstractRefreshableConfigApplicationContext.getConfigLocations()
method. Furthermore, they might override
the DefaultResourceLoader.getResourceByPath(java.lang.String)
hook to interpret relative paths in an
environment-specific fashion, and/or AbstractApplicationContext.getResourcePatternResolver()
for extended pattern resolution.
getConfigResources()
,
AbstractRefreshableConfigApplicationContext.getConfigLocations()
,
XmlBeanDefinitionReader
DefaultResourceLoader.ClassPathContextResource
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME
CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME
FACTORY_BEAN_PREFIX
CLASSPATH_ALL_URL_PREFIX
CLASSPATH_URL_PREFIX
Constructor and Description |
---|
AbstractXmlApplicationContext()
Create a new AbstractXmlApplicationContext with no parent.
|
AbstractXmlApplicationContext(ApplicationContext parent)
Create a new AbstractXmlApplicationContext with the given parent context.
|
Modifier and Type | Method and 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.
|
afterPropertiesSet, getConfigLocations, getDefaultConfigLocations, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setId
assertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences
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, getBeanProvider, getBeanProvider, 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
addProtocolResolver, clearResourceCaches, getClassLoader, getProtocolResolvers, getResource, getResourceByPath, getResourceCache, setClassLoader
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addProtocolResolver
getClassLoader, getResource
public AbstractXmlApplicationContext()
public AbstractXmlApplicationContext(@Nullable ApplicationContext parent)
parent
- the parent contextpublic void setValidating(boolean validating)
true
.protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws BeansException, java.io.IOException
loadBeanDefinitions
in class AbstractRefreshableApplicationContext
beanFactory
- the bean factory to load bean definitions intoBeansException
- if parsing of the bean definitions failedjava.io.IOException
- if loading of bean definition files failedXmlBeanDefinitionReader
,
initBeanDefinitionReader(org.springframework.beans.factory.xml.XmlBeanDefinitionReader)
,
loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory)
protected void initBeanDefinitionReader(XmlBeanDefinitionReader reader)
Can be overridden in subclasses, e.g. for turning off XML validation or using a different XmlBeanDefinitionParser implementation.
reader
- the bean definition reader used by this contextXmlBeanDefinitionReader.setDocumentReaderClass(java.lang.Class<? extends org.springframework.beans.factory.xml.BeanDefinitionDocumentReader>)
protected void loadBeanDefinitions(XmlBeanDefinitionReader reader) throws BeansException, java.io.IOException
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.
reader
- the XmlBeanDefinitionReader to useBeansException
- in case of bean registration errorsjava.io.IOException
- if the required XML document isn't foundAbstractRefreshableApplicationContext.refreshBeanFactory()
,
AbstractRefreshableConfigApplicationContext.getConfigLocations()
,
AbstractApplicationContext.getResources(java.lang.String)
,
AbstractApplicationContext.getResourcePatternResolver()
@Nullable protected Resource[] getConfigResources()
The default implementation returns null
. Subclasses can override
this to provide pre-built Resource objects rather than location Strings.
null
if noneAbstractRefreshableConfigApplicationContext.getConfigLocations()