インターフェース NamespaceHandler
- すべての既知の実装クラス:
AopNamespaceHandler、CacheNamespaceHandler、ContextNamespaceHandler、JdbcNamespaceHandler、JeeNamespaceHandler、JmsNamespaceHandler、LangNamespaceHandler、MvcNamespaceHandler、NamespaceHandlerSupport、OxmNamespaceHandler、SimpleConstructorNamespaceHandler、SimplePropertyNamespaceHandler、TaskNamespaceHandler、TxNamespaceHandler、UtilNamespaceHandler、WebSocketNamespaceHandler
DefaultBeanDefinitionDocumentReader によって使用される基本インターフェース。 実装は、カスタムトップレベルタグの BeanDefinitionParser インターフェースの実装とカスタムネストタグの BeanDefinitionDecorator インターフェースの実装を返すことが期待されています。
パーサーは、<beans> タグの直下でカスタムタグを検出すると parse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext) を呼び出し、<bean> タグの直下でカスタムタグを検出すると decorate(org.w3c.dom.Node, org.springframework.beans.factory.config.BeanDefinitionHolder, org.springframework.beans.factory.xml.ParserContext) を呼び出します。
独自のカスタム要素拡張を作成する開発者は、通常、このインターフェースを直接実装するのではなく、提供されている NamespaceHandlerSupport クラスを利用します。
- 導入:
- 2.0
- 作成者:
- Rob Harrop, Erik Wiersma
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明decorate(NodeSE source, BeanDefinitionHolder definition, ParserContext parserContext) 指定されたNodeSE を解析し、提供されたBeanDefinitionHolderを装飾し、装飾された定義を返します。voidinit()構築後、カスタム要素が解析される前にDefaultBeanDefinitionDocumentReaderによって呼び出されます。parse(ElementSE element, ParserContext parserContext) 指定されたElementSE を解析し、結果のBeanDefinitionsを、提供されたParserContextに埋め込まれているBeanDefinitionRegistryに登録します。
メソッドの詳細
init
void init()構築後、カスタム要素が解析される前にDefaultBeanDefinitionDocumentReaderによって呼び出されます。parse
指定されたElementSE を解析し、結果のBeanDefinitionsを、提供されたParserContextに埋め込まれているBeanDefinitionRegistryに登録します。実装は、(たとえば)
<property>タグ内にネストして使用する場合、解析フェーズの結果であるプライマリBeanDefinitionを返す必要があります。ネストされたシナリオで使用されない場合、実装は
nullを返す場合があります。- パラメーター:
element- 1 つ以上のBeanDefinitionsに解析される要素parserContext- 解析プロセスの現在の状態をカプセル化するオブジェクト- 戻り値:
- プライマリ
BeanDefinition(上で説明したようにnullにすることができます)
decorate
@Nullable BeanDefinitionHolder decorate(NodeSE source, BeanDefinitionHolder definition, ParserContext parserContext) 指定されたNodeSE を解析し、提供されたBeanDefinitionHolderを装飾し、装飾された定義を返します。NodeSE は、カスタム属性または要素が解析されているかどうかに応じて、AttrSE またはElementSE のいずれかになります。実装は、完全に新しい定義を返すことを選択できます。これにより、結果の
BeanFactoryの元の定義が置き換えられます。提供されている
ParserContextを使用して、メイン定義をサポートするために必要な追加の Bean を登録できます。- パラメーター:
source- 解析されるソース要素または属性definition- 現在の Bean 定義parserContext- 解析プロセスの現在の状態をカプセル化するオブジェクト- 戻り値:
- 装飾された定義(BeanFactory に登録される)、または装飾が必要ない場合は単に元の Bean 定義。
null値は厳密には無効ですが、元の Bean 定義が返される場合と同様に寛大に扱われます。