org.springframework.beans.factory.xml
Class DefaultBeanDefinitionDocumentReader

java.lang.Object
  extended by org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader
All Implemented Interfaces:
BeanDefinitionDocumentReader

public class DefaultBeanDefinitionDocumentReader
extends java.lang.Object
implements BeanDefinitionDocumentReader

Default implementation of the BeanDefinitionDocumentReader interface. Reads bean definitions according to the "spring-beans" DTD and XSD format (Spring's default XML bean definition format).

The structure, elements 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, not regarding the actual root element.

Since:
18.12.2003
Author:
Rod Johnson, Juergen Hoeller, Rob Harrop, Erik Wiersma

Field Summary
static java.lang.String ALIAS_ATTRIBUTE
           
static java.lang.String ALIAS_ELEMENT
           
static java.lang.String BEAN_ELEMENT
           
static java.lang.String IMPORT_ELEMENT
           
protected  org.apache.commons.logging.Log logger
           
static java.lang.String NAME_ATTRIBUTE
           
static java.lang.String RESOURCE_ATTRIBUTE
           
 
Constructor Summary
DefaultBeanDefinitionDocumentReader()
           
 
Method Summary
protected  BeanDefinitionParserDelegate createHelper(XmlReaderContext readerContext, org.w3c.dom.Element root)
           
protected  java.lang.Object extractSource(org.w3c.dom.Element ele)
          Invoke the SourceExtractor to pull the source metadata from the supplied Element.
protected  XmlReaderContext getReaderContext()
          Return the descriptor for the XML resource that this parser works on.
protected  void importBeanDefinitionResource(org.w3c.dom.Element ele)
          Parse an "import" element and load the bean definitions from the given resource into the bean factory.
protected  void parseBeanDefinitions(org.w3c.dom.Element root, BeanDefinitionParserDelegate delegate)
          Parse the elements at the root level in the document: "import", "alias", "bean".
protected  void postProcessXml(org.w3c.dom.Element root)
          Allow the XML to be extensible by processing any custom element types last, after we finished processing the bean definitions.
protected  void preProcessXml(org.w3c.dom.Element root)
          Allow the XML to be extensible by processing any custom element types first, before we start to process the bean definitions.
protected  void processAliasRegistration(org.w3c.dom.Element ele)
          Process the given alias element, registering the alias with the registry.
protected  void processBeanDefinition(org.w3c.dom.Element ele, BeanDefinitionParserDelegate delegate)
          Process the given bean element, parsing the bean definition and registering it with the registry.
 void registerBeanDefinitions(org.w3c.dom.Document doc, XmlReaderContext readerContext)
          Parses bean definitions according to the "spring-beans" DTD.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BEAN_ELEMENT

public static final java.lang.String BEAN_ELEMENT
See Also:
Constant Field Values

ALIAS_ELEMENT

public static final java.lang.String ALIAS_ELEMENT
See Also:
Constant Field Values

NAME_ATTRIBUTE

public static final java.lang.String NAME_ATTRIBUTE
See Also:
Constant Field Values

ALIAS_ATTRIBUTE

public static final java.lang.String ALIAS_ATTRIBUTE
See Also:
Constant Field Values

IMPORT_ELEMENT

public static final java.lang.String IMPORT_ELEMENT
See Also:
Constant Field Values

RESOURCE_ATTRIBUTE

public static final java.lang.String RESOURCE_ATTRIBUTE
See Also:
Constant Field Values

logger

protected final org.apache.commons.logging.Log logger
Constructor Detail

DefaultBeanDefinitionDocumentReader

public DefaultBeanDefinitionDocumentReader()
Method Detail

registerBeanDefinitions

public void registerBeanDefinitions(org.w3c.dom.Document doc,
                                    XmlReaderContext readerContext)
Parses bean definitions according to the "spring-beans" DTD.

Opens a DOM Document; then initializes the default settings specified at <beans> level; then parses the contained bean definitions.

Specified by:
registerBeanDefinitions in interface BeanDefinitionDocumentReader
Parameters:
doc - the DOM document
readerContext - the current context of the reader. Includes the resource being parsed

createHelper

protected BeanDefinitionParserDelegate createHelper(XmlReaderContext readerContext,
                                                    org.w3c.dom.Element root)

getReaderContext

protected final XmlReaderContext getReaderContext()
Return the descriptor for the XML resource that this parser works on.


extractSource

protected java.lang.Object extractSource(org.w3c.dom.Element ele)
Invoke the SourceExtractor to pull the source metadata from the supplied Element.


parseBeanDefinitions

protected void parseBeanDefinitions(org.w3c.dom.Element root,
                                    BeanDefinitionParserDelegate delegate)
Parse the elements at the root level in the document: "import", "alias", "bean".

Parameters:
root - the DOM root element of the document

importBeanDefinitionResource

protected void importBeanDefinitionResource(org.w3c.dom.Element ele)
Parse an "import" element and load the bean definitions from the given resource into the bean factory.


processAliasRegistration

protected void processAliasRegistration(org.w3c.dom.Element ele)
Process the given alias element, registering the alias with the registry.


processBeanDefinition

protected void processBeanDefinition(org.w3c.dom.Element ele,
                                     BeanDefinitionParserDelegate delegate)
Process the given bean element, parsing the bean definition and registering it with the registry.


preProcessXml

protected void preProcessXml(org.w3c.dom.Element root)
Allow the XML to be extensible by processing any custom element types first, before we start to process the bean definitions. This method is a natural extension point for any other custom pre-processing of the XML.

The default implementation is empty. Subclasses can override this method to convert custom elements into standard Spring bean definitions, for example. Implementors have access to the parser's bean definition reader and the underlying XML resource, through the corresponding accessors.

See Also:
getReaderContext()

postProcessXml

protected void postProcessXml(org.w3c.dom.Element root)
Allow the XML to be extensible by processing any custom element types last, after we finished processing the bean definitions. This method is a natural extension point for any other custom post-processing of the XML.

The default implementation is empty. Subclasses can override this method to convert custom elements into standard Spring bean definitions, for example. Implementors have access to the parser's bean definition reader and the underlying XML resource, through the corresponding accessors.

See Also:
getReaderContext()