public class SimpleConstructorNamespaceHandler extends ObjectSE implements NamespaceHandler
NamespaceHandler
実装。注意すべき重要な点は、この NamespaceHandler
には対応するスキーマがないため、すべての可能な属性名を事前に知る方法がないためです。 この NamespaceHandler
の使用例を以下に示します。
<bean id="author" class="..TestBean" c:name="Enescu" c:work-ref="compositions"/>ここで、'
c:name
' は、クラス 'TestBean
' のコンストラクターで宣言された 'name
' 引数に直接対応しています。"c:work-ref
" 属性は "work
" 引数に対応し、具体的な値ではなく、パラメーターと見なされる Bean の名前を含みます。 注 : この実装は名前付きパラメーターのみをサポートします。インデックスまたは型はサポートされません。さらに、名前は、デフォルトで型イントロスペクションを行うコンテナーによってヒントとして使用されます。SimplePropertyNamespaceHandler
コンストラクターと説明 |
---|
SimpleConstructorNamespaceHandler() |
修飾子と型 | メソッドと説明 |
---|---|
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 定義が返される場合と同様に寛大に扱われます。