## org.springframework.beans.factory.xml
Class XmlBeanFactory

    java.lang.Object
      org.springframework.core.SimpleAliasRegistry
          org.springframework.beans.factory.support.DefaultSingletonBeanRegistry
              org.springframework.beans.factory.support.FactoryBeanRegistrySupport
                  org.springframework.beans.factory.support.AbstractBeanFactory
                      org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
                          org.springframework.beans.factory.support.DefaultListableBeanFactory
                              org.springframework.beans.factory.xml.XmlBeanFactory

All Implemented Interfaces:
  Serializable, BeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory, ConfigurableListableBeanFactory, SingletonBeanRegistry, HierarchicalBeanFactory, ListableBeanFactory, BeanDefinitionRegistry, AliasRegistry

    public class XmlBeanFactory

extends DefaultListableBeanFactory

Convenience extension of `DefaultListableBeanFactory` that reads bean definitions from an XML document. Delegates to `XmlBeanDefinitionReader` underneath; effectively equivalent to using an XmlBeanDefinitionReader with a DefaultListableBeanFactory.

The structure, element and attribute names of the required XML document are hard-coded in this class. (Of course a transform could be run if necessary to produce this format). "beans" doesn't need to be the root element of the XML document: This class will parse all bean definition elements in the XML file.

This class registers each bean definition with the `DefaultListableBeanFactory` superclass, and relies on the latter's implementation of the `BeanFactory` interface. It supports singletons, prototypes, and references to either of these kinds of bean. See "spring-beans-2.0.dtd" for details on options and configuration style.

For advanced needs, consider using a `DefaultListableBeanFactory` with an `XmlBeanDefinitionReader`. The latter allows for reading from multiple XML resources and is highly configurable in its actual XML parsing behavior.

Since:
  15 April 2001
Author:
  Rod Johnson, Juergen Hoeller
See Also:
  `DefaultListableBeanFactory`, `XmlBeanDefinitionReader`, Serialized Form

Field Summary

Fields inherited from class org.springframework.beans.factory.support.DefaultSingletonBeanRegistry
`logger, NULL_OBJECT`

Fields inherited from interface org.springframework.beans.factory.config.AutowireCapableBeanFactory
`AUTOWIRE_AUTODETECT, AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_CONSTRUCTOR, AUTOWIRE_NO`

Fields inherited from interface org.springframework.beans.factory.config.ConfigurableBeanFactory
`SCOPE_PROTOTYPE, SCOPE_SINGLETON`

Fields inherited from interface org.springframework.beans.factory.BeanFactory
`FACTORY_BEAN_PREFIX`

Constructor Summary
`XmlBeanFactory(Resource resource)` Create a new XmlBeanFactory with the given resource, which must be parsable using DOM.
`XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory)` Create a new XmlBeanFactory with the given input stream, which must be parsable using DOM.

Method Summary

Methods inherited from class org.springframework.beans.factory.support.DefaultListableBeanFactory

`allowAliasOverriding, containsBeanDefinition, copyConfigurationFrom, determinePrimaryCandidate, doResolveDependency, findAnnotationOnBean, findAutowireCandidates, freezeConfiguration, getAutowireCandidateResolver, getBean, getBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, isAutowireCandidate, isAutowireCandidate, isBeanEligibleForMetadataCaching, isConfigurationFrozen, isPrimary, matchesBeanName, preInstantiateSingletons, registerBeanDefinition, registerResolvableDependency, removeBeanDefinition, resetBeanDefinition, resolveDependency, setAllowBeanDefinitionOverriding, setAllowEagerClassLoading, setAutowireCandidateResolver, setSerializationId, toString, writeReplace`

Methods inherited from class org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory

`applyBeanPostProcessorsAfterInitialization, applyBeanPostProcessorsBeforeInitialization, applyBeanPostProcessorsBeforeInstantiation, applyBeanPropertyValues, applyMergedBeanDefinitionPostProcessors, applyPropertyValues, autowire, autowireBean, autowireBeanProperties, autowireByName, autowireByType, autowireConstructor, checkDependencies, configureBean, createBean, createBean, createBean, createBeanInstance, determineConstructorsFromBeanPostProcessors, doCreateBean, filterPropertyDescriptorsForDependencyCheck, getEarlyBeanReference, getInstantiationStrategy, getParameterNameDiscoverer, getTypeForFactoryBean, getTypeForFactoryMethod, ignoreDependencyInterface, ignoreDependencyType, initializeBean, initializeBean, instantiateBean, instantiateUsingFactoryMethod, invokeCustomInitMethod, invokeInitMethods, isExcludedFromDependencyCheck, populateBean, postProcessObjectFromFactoryBean, predictBeanType, removeSingleton, resolveBeforeInstantiation, resolveDependency, setAllowCircularReferences, setAllowRawInjectionDespiteWrapping, setInstantiationStrategy, setParameterNameDiscoverer, unsatisfiedNonSimpleProperties`

Methods inherited from class org.springframework.beans.factory.support.AbstractBeanFactory

`addBeanPostProcessor, addEmbeddedValueResolver, addPropertyEditorRegistrar, afterPrototypeCreation, beforePrototypeCreation, checkMergedBeanDefinition, clearMergedBeanDefinition, containsBean, containsLocalBean, copyRegisteredEditorsTo, destroyBean, destroyBean, destroyScopedBean, doGetBean, evaluateBeanDefinitionString, getAccessControlContext, getAliases, getBean, getBean, getBean, getBean, getBeanClassLoader, getBeanExpressionResolver, getBeanPostProcessorCount, getBeanPostProcessors, getConversionService, getCustomEditors, getCustomTypeConverter, getMergedBeanDefinition, getMergedBeanDefinition, getMergedBeanDefinition, getMergedLocalBeanDefinition, getObjectForBeanInstance, getParentBeanFactory, getPropertyEditorRegistrars, getRegisteredScope, getRegisteredScopeNames, getTempClassLoader, getType, getTypeConverter, hasDestructionAwareBeanPostProcessors, hasInstantiationAwareBeanPostProcessors, initBeanWrapper, isBeanNameInUse, isCacheBeanMetadata, isCurrentlyInCreation, isFactoryBean, isFactoryBean, isPrototype, isPrototypeCurrentlyInCreation, isSingleton, isTypeMatch, markBeanAsCreated, originalBeanName, registerCustomEditor, registerCustomEditors, registerDisposableBeanIfNecessary, registerScope, removeSingletonIfCreatedForTypeCheckOnly, requiresDestruction, resolveBeanClass, resolveEmbeddedValue, setBeanClassLoader, setBeanExpressionResolver, setCacheBeanMetadata, setConversionService, setParentBeanFactory, setSecurityContextProvider, setTempClassLoader, setTypeConverter, transformedBeanName`

Methods inherited from class org.springframework.beans.factory.support.FactoryBeanRegistrySupport
`getCachedObjectForFactoryBean, getFactoryBean, getObjectFromFactoryBean, getTypeForFactoryBean`

Methods inherited from class org.springframework.beans.factory.support.DefaultSingletonBeanRegistry

`addSingleton, addSingletonFactory, afterSingletonCreation, beforeSingletonCreation, containsSingleton, destroyBean, destroySingleton, destroySingletons, getDependenciesForBean, getDependentBeans, getSingleton, getSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames, hasDependentBean, isSingletonCurrentlyInCreation, onSuppressedException, registerContainedBean, registerDependentBean, registerDisposableBean, registerSingleton`

Methods inherited from class org.springframework.core.SimpleAliasRegistry
`canonicalName, checkForAliasCircle, getAliases, isAlias, registerAlias, removeAlias, resolveAliases`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.springframework.beans.factory.config.ConfigurableListableBeanFactory
`ignoreDependencyInterface, ignoreDependencyType`

Methods inherited from interface org.springframework.beans.factory.config.AutowireCapableBeanFactory
`applyBeanPostProcessorsAfterInitialization, applyBeanPostProcessorsBeforeInitialization, applyBeanPropertyValues, autowire, autowireBean, autowireBeanProperties, configureBean, createBean, createBean, initializeBean, resolveDependency`

Methods inherited from interface org.springframework.beans.factory.config.ConfigurableBeanFactory

`addBeanPostProcessor, addEmbeddedValueResolver, addPropertyEditorRegistrar, copyRegisteredEditorsTo, destroyBean, destroyScopedBean, destroySingletons, getAccessControlContext, getBeanClassLoader, getBeanExpressionResolver, getBeanPostProcessorCount, getConversionService, getDependenciesForBean, getDependentBeans, getMergedBeanDefinition, getRegisteredScope, getRegisteredScopeNames, getTempClassLoader, getTypeConverter, isCacheBeanMetadata, isCurrentlyInCreation, isFactoryBean, registerAlias, registerCustomEditor, registerDependentBean, registerScope, resolveAliases, resolveEmbeddedValue, setBeanClassLoader, setBeanExpressionResolver, setCacheBeanMetadata, setConversionService, setParentBeanFactory, setTempClassLoader, setTypeConverter`

Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory
`containsLocalBean, getParentBeanFactory`

Methods inherited from interface org.springframework.beans.factory.BeanFactory
`containsBean, getAliases, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch`

Methods inherited from interface org.springframework.beans.factory.config.SingletonBeanRegistry
`containsSingleton, getSingleton, getSingletonCount, getSingletonNames, registerSingleton`

Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry
`isBeanNameInUse`

Methods inherited from interface org.springframework.core.AliasRegistry
`getAliases, isAlias, registerAlias, removeAlias`

Constructor Detail

### XmlBeanFactory

    public XmlBeanFactory(Resource resource)
                   throws BeansException

  Create a new XmlBeanFactory with the given resource, which must be parsable using DOM.

  Parameters:
    `resource` - XML resource to load bean definitions from
  Throws:
    `BeansException` - in case of loading or parsing errors

### XmlBeanFactory

    public XmlBeanFactory(Resource resource,
                          BeanFactory parentBeanFactory)
                   throws BeansException

  Create a new XmlBeanFactory with the given input stream, which must be parsable using DOM.

  Parameters:
    `resource` - XML resource to load bean definitions from
    `parentBeanFactory` - parent bean factory
  Throws:
    `BeansException` - in case of loading or parsing errors