Class 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(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:
  • 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:
    • 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(Class)
    • 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:
    • getConfigResources

      protected org.springframework.core.io.Resource @Nullable [] 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: