クラス AbstractBeanDefinitionParser
- 実装されたすべてのインターフェース:
BeanDefinitionParser
- 既知の直属サブクラス
AbstractSingleBeanDefinitionParser
template method
を提供する抽象 BeanDefinitionParser
実装。 任意の複雑な XML を 1 つ以上の BeanDefinitions
に解析する場合は、この BeanDefinitionParser
実装を使用します。XML を 1 つの BeanDefinition
に解析するだけの場合は、このクラスのより簡単で便利な拡張機能、つまり AbstractSingleBeanDefinitionParser
および AbstractSimpleBeanDefinitionParser
を検討することをお勧めします。
- 導入:
- 2.0
- 作成者:
- Rob Harrop, Juergen Hoeller, Rick Evans, Dave Syer
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明final BeanDefinition
parse
(ElementSE element, ParserContext parserContext) 指定されたElement
SE を解析し、結果のBeanDefinition(s)
を、提供されたParserContext
に埋め込まれたBeanDefinitionRegistry
に登録します。protected abstract AbstractBeanDefinition
parseInternal
(ElementSE element, ParserContext parserContext) 提供されたElement
SE を 1 つ以上のBeanDefinitions
に実際に解析する主要テンプレートメソッド。protected void
postProcessComponentDefinition
(BeanComponentDefinition componentDefinition) BeanComponentDefinition
の一次解析の後、BeanComponentDefinition
がBeanDefinitionRegistry
に登録される前に呼び出されるフックメソッド。protected void
registerBeanDefinition
(BeanDefinitionHolder definition, BeanDefinitionRegistry registry) protected StringSE
resolveId
(ElementSE element, AbstractBeanDefinition definition, ParserContext parserContext) 指定されたBeanDefinition
の ID を解決します。protected boolean
このパーサーが Bean 定義の解析後にBeanComponentDefinition
イベントを発生させることになっているかどうかを判別します。protected boolean
渡されたElement
SE から読み取る代わりに ID を生成する必要がありますか?protected boolean
渡されたElement
SE が "id" 属性を明示的に指定していない場合は、代わりに ID を生成する必要がありますか?protected boolean
要素の "name" 属性を Bean 定義のエイリアスとして解析するかどうかを決定します。
フィールドの詳細
コンストラクターの詳細
AbstractBeanDefinitionParser
public AbstractBeanDefinitionParser()
メソッドの詳細
parse
インターフェースからコピーされた説明:BeanDefinitionParser
指定されたElement
SE を解析し、結果のBeanDefinition(s)
を、提供されたParserContext
に埋め込まれたBeanDefinitionRegistry
に登録します。実装は、ネストされた方法で(たとえば、
<property/>
タグの内部タグとして)使用される場合、解析の結果であるプライマリBeanDefinition
を返す必要があります。ネストされた方法で使用されない場合、実装はnull
を返す場合があります。- 次で指定:
- インターフェース
BeanDefinitionParser
のparse
- パラメーター:
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) 提供されたElement
SE を 1 つ以上のBeanDefinitions
に実際に解析する主要テンプレートメソッド。- パラメーター:
element
- 1 つ以上のBeanDefinitions
に解析される要素parserContext
- 解析プロセスの現在の状態をカプセル化するオブジェクト。BeanDefinitionRegistry
へのアクセスを提供します- 戻り値:
- 提供された
Element
SE の構文解析の結果の 1 次BeanDefinition
- 関連事項:
shouldGenerateId
protected boolean shouldGenerateId()渡されたElement
SE から読み取る代わりに ID を生成する必要がありますか?デフォルトでは無効になっています。サブクラスはこれをオーバーライドして ID 生成を有効にすることができます。このフラグは常に ID を生成することに注意してください。この場合、パーサーは "id" 属性をチェックしません。
- 戻り値:
- パーサーが常に ID を生成するかどうか
shouldGenerateIdAsFallback
protected boolean shouldGenerateIdAsFallback()渡されたElement
SE が "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
BeanComponentDefinition
の一次解析の後、BeanComponentDefinition
がBeanDefinitionRegistry
に登録される前に呼び出されるフックメソッド。派生クラスは、このメソッドをオーバーライドして、すべての解析が完了した後に実行されるカスタムロジックを提供できます。
デフォルトの実装はノーオペレーションです。
- パラメーター:
componentDefinition
- 処理されるBeanComponentDefinition