クラス SimpleConstructorNamespaceHandler

java.lang.ObjectSE
org.springframework.beans.factory.xml.SimpleConstructorNamespaceHandler
実装されたすべてのインターフェース:
NamespaceHandler

public class SimpleConstructorNamespaceHandler extends ObjectSE implements NamespaceHandler
カスタム属性を Bean プロパティに直接マッピングする単純な NamespaceHandler 実装。注意すべき重要な点は、この NamespaceHandler には対応するスキーマがないため、すべての可能な属性名を事前に知る方法がないためです。

この NamespaceHandler の使用例を以下に示します。

 <bean id="author" class="..TestBean" c:name="Enescu" c:work-ref="compositions"/>
 
ここで、'c:name' は、クラス 'TestBean' のコンストラクターで宣言された 'name ' 引数に直接対応します。'c:work-ref' 属性は 'work' 引数に対応し、具体的な値ではなく、パラメーターと見なされる Bean の名前を含みます。: この実装では、名前付きパラメーターのみがサポートされます。インデックスや型はサポートされていません。さらに、名前はコンテナーによってヒントとして使用され、コンテナーはデフォルトで型のイントロスペクションを行います。
導入:
3.1
作成者:
Costin Leau
関連事項:
  • コンストラクターの詳細

    • SimpleConstructorNamespaceHandler

      public SimpleConstructorNamespaceHandler()
  • メソッドの詳細

    • init

      public void init()
      インターフェースからコピーされた説明: NamespaceHandler
      構築後、カスタム要素が解析される前に DefaultBeanDefinitionDocumentReader によって呼び出されます。
      次で指定:
      インターフェース NamespaceHandlerinit 
      関連事項:
    • parse

      @Nullable public BeanDefinition parse(ElementSE element, ParserContext parserContext)
      インターフェースからコピーされた説明: NamespaceHandler
      指定された ElementSE を解析し、結果の BeanDefinitions を、提供された ParserContext に埋め込まれている BeanDefinitionRegistry に登録します。

      実装は、(たとえば) <property> タグ内にネストして使用する場合、解析フェーズの結果であるプライマリ BeanDefinition を返す必要があります。

      ネストされたシナリオで使用されない場合、実装は null を返す場合があります。

      次で指定:
      インターフェース NamespaceHandlerparse 
      パラメーター:
      element - 1 つ以上の BeanDefinitions に解析される要素
      parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト
      戻り値:
      プライマリ BeanDefinition (上で説明したように null にすることができます)
    • decorate

      public BeanDefinitionHolder decorate(NodeSE node, BeanDefinitionHolder definition, ParserContext parserContext)
      インターフェースからコピーされた説明: NamespaceHandler
      指定された NodeSE を解析し、提供された BeanDefinitionHolder を装飾し、装飾された定義を返します。

      NodeSE は、カスタム属性または要素が解析されているかどうかに応じて、AttrSE または ElementSE のいずれかになります。

      実装は、完全に新しい定義を返すことを選択できます。これにより、結果の BeanFactory の元の定義が置き換えられます。

      提供されている ParserContext を使用して、メイン定義をサポートするために必要な追加の Bean を登録できます。

      次で指定:
      インターフェース NamespaceHandlerdecorate 
      パラメーター:
      node - 解析されるソース要素または属性
      definition - 現在の Bean 定義
      parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト
      戻り値:
      装飾された定義(BeanFactory に登録される)、または装飾が必要ない場合は単に元の Bean 定義。null 値は厳密には無効ですが、元の Bean 定義が返される場合と同様に寛大に扱われます。