public class SimplePropertyNamespaceHandler extends ObjectSE implements NamespaceHandler
NamespaceHandler
実装。注意すべき重要な点は、この NamespaceHandler
には対応するスキーマがないため、すべての可能な属性名を事前に知る方法がないためです。 この NamespaceHandler
の使用例を以下に示します。
<bean id="rob" class="..TestBean" p:name="Rob Harrop" p:spouse-ref="sally"/>ここで、'
p:name
' は、クラス 'TestBean
' の 'name
' プロパティに直接対応しています。"p:spouse-ref
" 属性は "spouse
" プロパティに対応し、具体的な値ではなく、そのプロパティに注入される Bean の名前が含まれています。コンストラクターと説明 |
---|
SimplePropertyNamespaceHandler() |
修飾子と型 | メソッドと説明 |
---|---|
BeanDefinitionHolder | decorate(NodeSE node, BeanDefinitionHolder definition, ParserContext parserContext) 指定された Node SE を解析し、提供された BeanDefinitionHolder を装飾し、装飾された定義を返します。 |
void | init() 構築後、カスタム要素が解析される前に DefaultBeanDefinitionDocumentReader によって呼び出されます。 |
BeanDefinition | parse(ElementSE element, ParserContext parserContext) 指定された Element SE を解析し、結果の BeanDefinitions を、提供された ParserContext に埋め込まれている BeanDefinitionRegistry に登録します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void init()
NamespaceHandler
DefaultBeanDefinitionDocumentReader
によって呼び出されます。@Nullable public BeanDefinition parse(ElementSE element, ParserContext parserContext)
NamespaceHandler
Element
SE を解析し、結果の BeanDefinitions
を、提供された ParserContext
に埋め込まれている BeanDefinitionRegistry
に登録します。 実装は、(たとえば) <property>
タグ内にネストして使用する場合、解析フェーズの結果であるプライマリ BeanDefinition
を返す必要があります。
ネストされたシナリオで使用されない場合、実装は null
を返す場合があります。
NamespaceHandler
の parse
element
- 1 つ以上の BeanDefinitions
に解析される要素 parserContext
- 解析プロセスの現在の状態をカプセル化するオブジェクト BeanDefinition
(上で説明したように null
にすることができます)public BeanDefinitionHolder decorate(NodeSE node, BeanDefinitionHolder definition, ParserContext parserContext)
NamespaceHandler
Node
SE を解析し、提供された BeanDefinitionHolder
を装飾し、装飾された定義を返します。Node
SE は、カスタム属性または要素が解析されているかどうかに応じて、Attr
SE または Element
SE のいずれかになります。
実装は、完全に新しい定義を返すことを選択できます。これにより、結果の BeanFactory
の元の定義が置き換えられます。
提供されている ParserContext
を使用して、メイン定義をサポートするために必要な追加の Bean を登録できます。
NamespaceHandler
の decorate
node
- 解析されるソース要素または属性 definition
- 現在の Bean 定義 parserContext
- 解析プロセスの現在の状態をカプセル化するオブジェクト null
値は厳密には無効ですが、元の Bean 定義が返される場合と同様に寛大に扱われます。