Package org.springframework.context.support

# 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`, `org.springframework.beans.factory.Aware`, `org.springframework.beans.factory.BeanFactory`, `org.springframework.beans.factory.BeanNameAware`, `org.springframework.beans.factory.HierarchicalBeanFactory`, `org.springframework.beans.factory.InitializingBean`, `org.springframework.beans.factory.ListableBeanFactory`, `ApplicationContext`, `ApplicationEventPublisher`, `ConfigurableApplicationContext`, `Lifecycle`, `MessageSource`, `org.springframework.core.env.EnvironmentCapable`, `org.springframework.core.io.ResourceLoader`, `org.springframework.core.io.support.ResourcePatternResolver`

Direct Known Subclasses:
  `ClassPathXmlApplicationContext`, `FileSystemXmlApplicationContext`

public abstract class AbstractXmlApplicationContext extends AbstractRefreshableConfigApplicationContext
Convenient base class for `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.

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

`org.springframework.core.io.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, FACTORY_BEAN_PREFIX_CHAR`

### Fields inherited from interface org.springframework.context.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 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

Modifier and Type
Method
Description
`protected org.springframework.core.io.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(org.springframework.beans.factory.xml.XmlBeanDefinitionReader reader)`
Initialize the bean definition reader used for loading the bean definitions of this context.
`protected void`
`loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)`
Loads the bean definitions via an XmlBeanDefinitionReader.
`protected void`
`loadBeanDefinitions(org.springframework.beans.factory.xml.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, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, 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, getResourcePatternResolver, getResources, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setApplicationStartup, setDisplayName, setEnvironment, setParent, start, stop, toString`

### Methods inherited from class org.springframework.core.io.DefaultResourceLoader

`addProtocolResolver, getClassLoader, getProtocolResolvers, getResource, getResourceByPath, getResourceCache, 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, setClassLoader`

### Methods inherited from interface org.springframework.core.io.ResourceLoader

`getClassLoader, getResource`

## Constructor Details

### AbstractXmlApplicationContext

public AbstractXmlApplicationContext()
Create a new AbstractXmlApplicationContext with no parent.

### AbstractXmlApplicationContext

public AbstractXmlApplicationContext(@Nullable ApplicationContext parent)
Create a new AbstractXmlApplicationContext with the given parent context.

Parameters:
  `parent` - the parent context

## Method Details

### setValidating

public void setValidating(boolean validating)
Set whether to use XML validation. Default is `true`.

### loadBeanDefinitions

protected void loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory) throws org.springframework.beans.BeansException, IOException
Loads the bean definitions via an XmlBeanDefinitionReader.

Specified by:
  `loadBeanDefinitions` in class `AbstractRefreshableApplicationContext`
Parameters:
  `beanFactory` - the bean factory to load bean definitions into
Throws:
  `org.springframework.beans.BeansException` - if parsing of the bean definitions failed
  `IOException` - 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(org.springframework.beans.factory.xml.XmlBeanDefinitionReader reader)
Initialize the bean definition reader used for loading the bean definitions of this context. The default implementation sets the validating flag.

Can be overridden in subclasses, for example, for turning off XML validation or using a different `BeanDefinitionDocumentReader` implementation.

Parameters:
  `reader` - the bean definition reader used by this context
See Also:
  - `XmlBeanDefinitionReader.setValidating(boolean)`
  - `XmlBeanDefinitionReader.setDocumentReaderClass(java.lang.Class<? extends org.springframework.beans.factory.xml.BeanDefinitionDocumentReader>)`

### loadBeanDefinitions

protected void loadBeanDefinitions(org.springframework.beans.factory.xml.XmlBeanDefinitionReader reader) throws org.springframework.beans.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:
  `org.springframework.beans.BeansException` - in case of bean registration errors
  `IOException` - if the required XML document isn't found
See Also:
  - `AbstractRefreshableApplicationContext.refreshBeanFactory()`
  - `AbstractRefreshableConfigApplicationContext.getConfigLocations()`
  - `AbstractApplicationContext.getResources(java.lang.String)`
  - `AbstractApplicationContext.getResourcePatternResolver()`

### getConfigResources

@Nullable protected org.springframework.core.io.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()`