public class SimplePropertyNamespaceHandler extends Object implements NamespaceHandler
NamespaceHandler implementation that maps custom attributes
directly through to bean properties. An important point to note is that this
NamespaceHandler does 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 NamespaceHandler is 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.| Constructor and Description |
|---|
SimplePropertyNamespaceHandler() |
| Modifier and Type | Method and Description |
|---|---|
BeanDefinitionHolder |
decorate(Node node,
BeanDefinitionHolder definition,
ParserContext parserContext)
Parse the specified
Node and decorate the supplied
BeanDefinitionHolder, returning the decorated definition. |
void |
init()
Invoked by the
DefaultBeanDefinitionDocumentReader after
construction but before any custom elements are parsed. |
BeanDefinition |
parse(Element element,
ParserContext parserContext)
Parse the specified
Element and register any resulting
BeanDefinitions with the
BeanDefinitionRegistry
that is embedded in the supplied ParserContext. |
public void init()
NamespaceHandlerDefaultBeanDefinitionDocumentReader after
construction but before any custom elements are parsed.init in interface NamespaceHandlerNamespaceHandlerSupport.registerBeanDefinitionParser(String, BeanDefinitionParser)public BeanDefinition parse(Element element, ParserContext parserContext)
NamespaceHandlerElement and register any resulting
BeanDefinitions with the
BeanDefinitionRegistry
that is embedded in the supplied ParserContext.
Implementations should return the primary BeanDefinition
that results from the parse phase if they wish to be used nested
inside (for example) a <property> tag.
Implementations may return null if they will
not be used in a nested scenario.
parse in interface NamespaceHandlerelement - the element that is to be parsed into one or more BeanDefinitionsparserContext - the object encapsulating the current state of the parsing processBeanDefinition (can be null as explained above)public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext)
NamespaceHandlerNode and decorate the supplied
BeanDefinitionHolder, returning the decorated definition.
The Node may be either an Attr or an
Element, 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 ParserContext can be used to register any
additional beans needed to support the main definition.
decorate in interface NamespaceHandlernode - the source element or attribute that is to be parseddefinition - the current bean definitionparserContext - the object encapsulating the current state of the parsing processnull value is strictly speaking invalid, but will be leniently
treated like the case where the original bean definition gets returned.