org.springframework.beans.factory.xml

## 类 AbstractSingleBeanDefinitionParser

- java.lang.Object
- - org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
  - - org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser

- 所有已实现的接口:
    BeanDefinitionParser
  直接已知子类:
    AbstractSimpleBeanDefinitionParser

      public abstract class AbstractSingleBeanDefinitionParser
      extends AbstractBeanDefinitionParser

  Base class for those `BeanDefinitionParser` implementations that need to parse and define just a single `BeanDefinition`.

  Extend this parser class when you want to create a single bean definition from an arbitrarily complex XML element. You may wish to consider extending the `AbstractSimpleBeanDefinitionParser` when you want to create a single bean definition from a relatively simple custom XML element.

  The resulting `BeanDefinition` will be automatically registered with the `BeanDefinitionRegistry`. Your job simply is to `parse` the custom XML `Element` into a single `BeanDefinition`.

  从以下版本开始:
    2.0
  作者:
    Rob Harrop, Juergen Hoeller, Rick Evans
  另请参阅:
    `getBeanClass(org.w3c.dom.Element)`, `getBeanClassName(org.w3c.dom.Element)`, `doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)`

- - ### 字段概要

    - ### 从类继承的字段 org.springframework.beans.factory.xml.AbstractBeanDefinitionParser

      `ID_ATTRIBUTE, NAME_ATTRIBUTE`

  - ### 构造器概要

    构造器
    构造器和说明
    `AbstractSingleBeanDefinitionParser()`

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected void` | `doParse(Element element, BeanDefinitionBuilder builder)` Parse the supplied `Element` and populate the supplied `BeanDefinitionBuilder` as required.
    `protected void` | `doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)` Parse the supplied `Element` and populate the supplied `BeanDefinitionBuilder` as required.
    `protected Class<?>` | `getBeanClass(Element element)` Determine the bean class corresponding to the supplied `Element`.
    `protected String` | `getBeanClassName(Element element)` Determine the bean class name corresponding to the supplied `Element`.
    `protected String` | `getParentName(Element element)` Determine the name for the parent of the currently parsed bean, in case of the current bean being defined as a child bean.
    `protected AbstractBeanDefinition` | `parseInternal(Element element, ParserContext parserContext)` Creates a `BeanDefinitionBuilder` instance for the `bean Class` and passes it to the `doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)` strategy method.

    - ### 从类继承的方法 org.springframework.beans.factory.xml.AbstractBeanDefinitionParser

      `parse, postProcessComponentDefinition, registerBeanDefinition, resolveId, shouldFireEvents, shouldGenerateId, shouldGenerateIdAsFallback, shouldParseNameAsAliases`

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### AbstractSingleBeanDefinitionParser

          public AbstractSingleBeanDefinitionParser()

  - ### 方法详细资料

    - #### parseInternal

          protected final AbstractBeanDefinition parseInternal(Element element,
                                                               ParserContext parserContext)

      Creates a `BeanDefinitionBuilder` instance for the `bean Class` and passes it to the `doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)` strategy method.
      指定者:
        `parseInternal` 在类中 `AbstractBeanDefinitionParser`
      参数:
        `element` - the element that is to be parsed into a single BeanDefinition
        `parserContext` - the object encapsulating the current state of the parsing process
      返回:
        the BeanDefinition resulting from the parsing of the supplied `Element`
      抛出:
        `IllegalStateException` - if the bean `Class` returned from `getBeanClass(org.w3c.dom.Element)` is `null`
      另请参阅:
        `doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)`

    - #### getParentName

          @Nullable
          protected String getParentName(Element element)

      Determine the name for the parent of the currently parsed bean, in case of the current bean being defined as a child bean.

      The default implementation returns `null`, indicating a root bean definition.

      参数:
        `element` - the `Element` that is being parsed
      返回:
        the name of the parent bean for the currently parsed bean, or `null` if none

    - #### getBeanClass

          @Nullable
          protected Class<?> getBeanClass(Element element)

      Determine the bean class corresponding to the supplied `Element`.

      Note that, for application classes, it is generally preferable to override `getBeanClassName(org.w3c.dom.Element)` instead, in order to avoid a direct dependence on the bean implementation class. The BeanDefinitionParser and its NamespaceHandler can be used within an IDE plugin then, even if the application classes are not available on the plugin's classpath.

      参数:
        `element` - the `Element` that is being parsed
      返回:
        the `Class` of the bean that is being defined via parsing the supplied `Element`, or `null` if none
      另请参阅:
        `getBeanClassName(org.w3c.dom.Element)`

    - #### getBeanClassName

          @Nullable
          protected String getBeanClassName(Element element)

      Determine the bean class name corresponding to the supplied `Element`.
      参数:
        `element` - the `Element` that is being parsed
      返回:
        the class name of the bean that is being defined via parsing the supplied `Element`, or `null` if none
      另请参阅:
        `getBeanClass(org.w3c.dom.Element)`

    - #### doParse

          protected void doParse(Element element,
                                 ParserContext parserContext,
                                 BeanDefinitionBuilder builder)

      Parse the supplied `Element` and populate the supplied `BeanDefinitionBuilder` as required.

      The default implementation delegates to the `doParse` version without ParserContext argument.

      参数:
        `element` - the XML element being parsed
        `parserContext` - the object encapsulating the current state of the parsing process
        `builder` - used to define the `BeanDefinition`
      另请参阅:
        `doParse(Element, BeanDefinitionBuilder)`

    - #### doParse

          protected void doParse(Element element,
                                 BeanDefinitionBuilder builder)

      Parse the supplied `Element` and populate the supplied `BeanDefinitionBuilder` as required.

      The default implementation does nothing.

      参数:
        `element` - the XML element being parsed
        `builder` - used to define the `BeanDefinition`