org.springframework.context.support
Class AbstractXmlApplicationContext

java.lang.Object
  extended by org.springframework.core.io.DefaultResourceLoader
      extended by org.springframework.context.support.AbstractApplicationContext
          extended by org.springframework.context.support.AbstractRefreshableApplicationContext
              extended by org.springframework.context.support.AbstractRefreshableConfigApplicationContext
                  extended by org.springframework.context.support.AbstractXmlApplicationContext
All Implemented Interfaces:
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 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

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.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.beans.factory.BeanFactory
FACTORY_BEAN_PREFIX
 
Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver
CLASSPATH_ALL_URL_PREFIX
 
Fields inherited from interface org.springframework.core.io.ResourceLoader
CLASSPATH_URL_PREFIX
 
Constructor Summary
AbstractXmlApplicationContext()
          Create a new AbstractXmlApplicationContext with no parent.
AbstractXmlApplicationContext(ApplicationContext parent)
          Create a new AbstractXmlApplicationContext with the given parent context.
 
Method Summary
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
cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences
 
Methods inherited from class org.springframework.context.support.AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addListener, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, 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, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setEnvironment, setParent, start, stop, toString
 
Methods inherited from class org.springframework.core.io.DefaultResourceLoader
getClassLoader, 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.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 is true.


loadBeanDefinitions

protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory)
                            throws 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:
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(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 errors
IOException - 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()