Class SimplePropertyNamespaceHandler
- java.lang.Object
- org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler
- All Implemented Interfaces:
NamespaceHandler
public class SimplePropertyNamespaceHandler extends Object implements NamespaceHandler
SimpleNamespaceHandlerimplementation that maps custom attributes directly through to bean properties. An important point to note is that thisNamespaceHandlerdoes not have a corresponding schema since there is no way to know in advance all possible attribute names.An example of the usage of this
NamespaceHandleris shown below:<bean id="rob" class="..TestBean" p:name="Rob Harrop" p:spouse-ref="sally"/>
Here the 'p:name' corresponds directly to the 'name' property on class 'TestBean'. The 'p:spouse-ref' attributes corresponds to the 'spouse' property and, rather than being the concrete value, it contains the name of the bean that will be injected into that property.- Since:
- 2.0
- Author:
- Rob Harrop, Juergen Hoeller
Constructor Summary
Constructors Constructor Description SimplePropertyNamespaceHandler()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BeanDefinitionHolderdecorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext)Parse the specifiedNodeand decorate the suppliedBeanDefinitionHolder, returning the decorated definition.voidinit()Invoked by theDefaultBeanDefinitionDocumentReaderafter construction but before any custom elements are parsed.BeanDefinitionparse(Element element, ParserContext parserContext)Parse the specifiedElementand register any resultingBeanDefinitionswith theBeanDefinitionRegistrythat is embedded in the suppliedParserContext.
Constructor Detail
SimplePropertyNamespaceHandler
public SimplePropertyNamespaceHandler()
Method Detail
init
public void init()
Description copied from interface:NamespaceHandlerInvoked by theDefaultBeanDefinitionDocumentReaderafter construction but before any custom elements are parsed.- Specified by:
initin interfaceNamespaceHandler- See Also:
NamespaceHandlerSupport.registerBeanDefinitionParser(String, BeanDefinitionParser)
parse
public BeanDefinition parse(Element element, ParserContext parserContext)
Description copied from interface:NamespaceHandlerParse the specifiedElementand register any resultingBeanDefinitionswith theBeanDefinitionRegistrythat is embedded in the suppliedParserContext.Implementations should return the primary
BeanDefinitionthat results from the parse phase if they wish to be used nested inside (for example) a<property>tag.Implementations may return
nullif they will not be used in a nested scenario.- Specified by:
parsein interfaceNamespaceHandler- Parameters:
element- the element that is to be parsed into one or moreBeanDefinitionsparserContext- the object encapsulating the current state of the parsing process- Returns:
- the primary
BeanDefinition(can benullas explained above)
decorate
public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext)
Description copied from interface:NamespaceHandlerParse the specifiedNodeand decorate the suppliedBeanDefinitionHolder, returning the decorated definition.The
Nodemay be either anAttror anElement, depending on whether a custom attribute or element is being parsed.Implementations may choose to return a completely new definition, which will replace the original definition in the resulting
BeanFactory.The supplied
ParserContextcan be used to register any additional beans needed to support the main definition.- Specified by:
decoratein interfaceNamespaceHandler- Parameters:
node- the source element or attribute that is to be parseddefinition- the current bean definitionparserContext- the object encapsulating the current state of the parsing process- Returns:
- the decorated definition (to be registered in the BeanFactory), or simply the original bean definition if no decoration is required. A
nullvalue is strictly speaking invalid, but will be leniently treated like the case where the original bean definition gets returned.