クラス AbstractBeanDefinitionParser

java.lang.ObjectSE
org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
実装されたすべてのインターフェース:
BeanDefinitionParser
既知の直属サブクラス
AbstractSingleBeanDefinitionParser

public abstract class AbstractBeanDefinitionParser extends ObjectSE implements BeanDefinitionParser
サブクラスが実際の解析ロジックを提供するためにオーバーライドする必要のある多くの便利なメソッドと template method を提供する抽象 BeanDefinitionParser 実装。

任意の複雑な XML を 1 つ以上の BeanDefinitions に解析する場合は、この BeanDefinitionParser 実装を使用します。XML を 1 つの BeanDefinition に解析するだけの場合は、このクラスのより簡単で便利な拡張機能、つまり AbstractSingleBeanDefinitionParser および AbstractSimpleBeanDefinitionParser を検討することをお勧めします。

導入:
2.0
作成者:
Rob Harrop, Juergen Hoeller, Rick Evans, Dave Syer
  • フィールドの詳細

  • コンストラクターの詳細

    • AbstractBeanDefinitionParser

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

    • parse

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

      実装は、ネストされた方法で(たとえば、<property/> タグの内部タグとして)使用される場合、解析の結果であるプライマリ BeanDefinition を返す必要があります。ネストされた方法で使用されない場合、実装は null を返す場合があります。

      次で指定:
      インターフェース BeanDefinitionParserparse 
      パラメーター:
      element - 1 つ以上の BeanDefinitions に解析される要素
      parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト。BeanDefinitionRegistry へのアクセスを提供します
      戻り値:
      プライマリ BeanDefinition
    • resolveId

      protected StringSE resolveId(ElementSE element, AbstractBeanDefinition definition, ParserContext parserContext) throws BeanDefinitionStoreException
      指定された BeanDefinition の ID を解決します。

      generation を使用すると、名前が自動的に生成されます。それ以外の場合、ID は "id" 属性から抽出され、fallback を使用して生成された ID になる可能性があります。

      パラメーター:
      element - Bean 定義が作成された要素
      definition - 登録する Bean 定義
      parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト。BeanDefinitionRegistry へのアクセスを提供します
      戻り値:
      解決された ID
      例外:
      BeanDefinitionStoreException - 指定された Bean 定義に対して一意の名前を生成できなかった場合
    • registerBeanDefinition

      protected void registerBeanDefinition(BeanDefinitionHolder definition, BeanDefinitionRegistry registry)
      提供された bean を提供された registry に登録します。

      サブクラスはこのメソッドをオーバーライドして、提供された bean が実際に登録されるかどうかを制御したり、さらに多くの Bean を登録したりできます。

      デフォルトの実装では、isNested パラメーターが false の場合にのみ、指定された bean が指定された registry に登録されます。これは、通常、内部 Bean をトップレベル Bean として登録したくないためです。

      パラメーター:
      definition - 登録する Bean 定義
      registry - Bean が登録されるレジストリ
      関連事項:
    • parseInternal

      @Nullable protected abstract AbstractBeanDefinition parseInternal(ElementSE element, ParserContext parserContext)
      提供された ElementSE を 1 つ以上の BeanDefinitions に実際に解析する主要テンプレートメソッド。
      パラメーター:
      element - 1 つ以上の BeanDefinitions に解析される要素
      parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト。BeanDefinitionRegistry へのアクセスを提供します
      戻り値:
      提供された ElementSE の構文解析の結果の 1 次 BeanDefinition
      関連事項:
    • shouldGenerateId

      protected boolean shouldGenerateId()
      渡された ElementSE から読み取る代わりに ID を生成する必要がありますか?

      デフォルトでは無効になっています。サブクラスはこれをオーバーライドして ID 生成を有効にすることができます。このフラグは常に ID を生成することに注意してください。この場合、パーサーは "id" 属性をチェックしません。

      戻り値:
      パーサーが常に ID を生成するかどうか
    • shouldGenerateIdAsFallback

      protected boolean shouldGenerateIdAsFallback()
      渡された ElementSE が "id" 属性を明示的に指定していない場合は、代わりに ID を生成する必要がありますか?

      デフォルトでは無効になっています。サブクラスはこれをオーバーライドして、ID 生成をフォールバックとして有効にすることができます。この場合、パーサーは最初に "id" 属性をチェックし、値が指定されていない場合にのみ生成された ID にフォールバックします。

      戻り値:
      ID が指定されていない場合にパーサーが ID を生成するかどうか
    • shouldParseNameAsAliases

      protected boolean shouldParseNameAsAliases()
      要素の "name" 属性を Bean 定義のエイリアス、つまり代替の Bean 定義名として解析するかどうかを決定します。

      デフォルトの実装は true を返します。

      戻り値:
      パーサーが "name" 属性をエイリアスとして評価するかどうか
      導入:
      4.1.5
    • shouldFireEvents

      protected boolean shouldFireEvents()
      このパーサーが Bean 定義の解析後に BeanComponentDefinition イベントを発生させることになっているかどうかを判別します。

      この実装はデフォルトで true を返します。つまり、Bean 定義が完全に解析されたときにイベントが発生します。イベントを抑制するために、これをオーバーライドして false を返します。

      戻り値:
      true は、Bean 定義の解析後にコンポーネント登録イベントを発生させるために使用します。イベントを抑制する false 
      関連事項:
    • postProcessComponentDefinition

      protected void postProcessComponentDefinition(BeanComponentDefinition componentDefinition)
      BeanComponentDefinition の一次解析の後、BeanComponentDefinitionBeanDefinitionRegistry に登録される前に呼び出されるフックメソッド。

      派生クラスは、このメソッドをオーバーライドして、すべての解析が完了した後に実行されるカスタムロジックを提供できます。

      デフォルトの実装はノーオペレーションです。

      パラメーター:
      componentDefinition - 処理される BeanComponentDefinition