Class AbstractSingleBeanDefinitionParser
- java.lang.Object
- org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
- org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser
- All Implemented Interfaces:
BeanDefinitionParser
- Direct Known Subclasses:
AbstractSimpleBeanDefinitionParser,ExecutorBeanDefinitionParser,FreeMarkerConfigurerBeanDefinitionParser,JtaTransactionManagerBeanDefinitionParser,ScheduledTasksBeanDefinitionParser,SchedulerBeanDefinitionParser,TilesConfigurerBeanDefinitionParser
public abstract class AbstractSingleBeanDefinitionParser extends AbstractBeanDefinitionParser
Base class for thoseBeanDefinitionParserimplementations that need to parse and define just a singleBeanDefinition.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
AbstractSimpleBeanDefinitionParserwhen you want to create a single bean definition from a relatively simple custom XML element.The resulting
BeanDefinitionwill be automatically registered with theBeanDefinitionRegistry. Your job simply is toparsethe custom XMLElementinto a singleBeanDefinition.- Since:
- 2.0
- Author:
- Rob Harrop, Juergen Hoeller, Rick Evans
- See Also:
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)
Field Summary
Fields inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
ID_ATTRIBUTE, NAME_ATTRIBUTE
Constructor Summary
Constructors Constructor Description AbstractSingleBeanDefinitionParser()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddoParse(Element element, BeanDefinitionBuilder builder)Parse the suppliedElementand populate the suppliedBeanDefinitionBuilderas required.protected voiddoParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)Parse the suppliedElementand populate the suppliedBeanDefinitionBuilderas required.protected Class<?>getBeanClass(Element element)Determine the bean class corresponding to the suppliedElement.protected StringgetBeanClassName(Element element)Determine the bean class name corresponding to the suppliedElement.protected StringgetParentName(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 AbstractBeanDefinitionparseInternal(Element element, ParserContext parserContext)Creates aBeanDefinitionBuilderinstance for thebean Classand passes it to thedoParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)strategy method.Methods inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
parse, postProcessComponentDefinition, registerBeanDefinition, resolveId, shouldFireEvents, shouldGenerateId, shouldGenerateIdAsFallback, shouldParseNameAsAliases
Constructor Detail
AbstractSingleBeanDefinitionParser
public AbstractSingleBeanDefinitionParser()
Method Detail
parseInternal
protected final AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext)
Creates aBeanDefinitionBuilderinstance for thebean Classand passes it to thedoParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)strategy method.- Specified by:
parseInternalin classAbstractBeanDefinitionParser- Parameters:
element- the element that is to be parsed into a single BeanDefinitionparserContext- the object encapsulating the current state of the parsing process- Returns:
- the BeanDefinition resulting from the parsing of the supplied
Element - Throws:
IllegalStateException- if the beanClassreturned fromgetBeanClass(org.w3c.dom.Element)isnull- See Also:
doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)
getParentName
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.- Parameters:
element- theElementthat is being parsed- Returns:
- the name of the parent bean for the currently parsed bean, or
nullif none
getBeanClass
protected Class<?> getBeanClass(Element element)
Determine the bean class corresponding to the suppliedElement.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.- Parameters:
element- theElementthat is being parsed- Returns:
- the
Classof the bean that is being defined via parsing the suppliedElement, ornullif none - See Also:
getBeanClassName(org.w3c.dom.Element)
getBeanClassName
protected String getBeanClassName(Element element)
Determine the bean class name corresponding to the suppliedElement.- Parameters:
element- theElementthat is being parsed- Returns:
- the class name of the bean that is being defined via parsing the supplied
Element, ornullif none - See Also:
getBeanClass(org.w3c.dom.Element)
doParse
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)
Parse the suppliedElementand populate the suppliedBeanDefinitionBuilderas required.The default implementation delegates to the
doParseversion without ParserContext argument.- Parameters:
element- the XML element being parsedparserContext- the object encapsulating the current state of the parsing processbuilder- used to define theBeanDefinition- See Also:
doParse(Element, BeanDefinitionBuilder)
doParse
protected void doParse(Element element, BeanDefinitionBuilder builder)
Parse the suppliedElementand populate the suppliedBeanDefinitionBuilderas required.The default implementation does nothing.
- Parameters:
element- the XML element being parsedbuilder- used to define theBeanDefinition