クラス 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 BeanDefinitionparse(ElementSE element, ParserContext parserContext) 指定されたElementSE を解析し、結果のBeanDefinition(s)を、提供されたParserContextに埋め込まれたBeanDefinitionRegistryに登録します。protected abstract AbstractBeanDefinitionparseInternal(ElementSE element, ParserContext parserContext) 提供されたElementSE を 1 つ以上のBeanDefinitionsに実際に解析する主要テンプレートメソッド。protected voidpostProcessComponentDefinition(BeanComponentDefinition componentDefinition) BeanComponentDefinitionの一次解析の後、BeanComponentDefinitionがBeanDefinitionRegistryに登録される前に呼び出されるフックメソッド。protected voidregisterBeanDefinition(BeanDefinitionHolder definition, BeanDefinitionRegistry registry) protected StringSEresolveId(ElementSE element, AbstractBeanDefinition definition, ParserContext parserContext) 指定されたBeanDefinitionの ID を解決します。protected booleanこのパーサーが Bean 定義の解析後にBeanComponentDefinitionイベントを発生させることになっているかどうかを判別します。protected boolean渡されたElementSE から読み取る代わりに ID を生成する必要がありますか?protected boolean渡されたElementSE が "id" 属性を明示的に指定していない場合は、代わりに ID を生成する必要がありますか?protected boolean要素の "name" 属性を Bean 定義のエイリアスとして解析するかどうかを決定します。
フィールドの詳細
コンストラクターの詳細
AbstractBeanDefinitionParser
public AbstractBeanDefinitionParser()
メソッドの詳細
parse
インターフェースからコピーされた説明:BeanDefinitionParser指定されたElementSE を解析し、結果の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) 提供された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
BeanComponentDefinitionの一次解析の後、BeanComponentDefinitionがBeanDefinitionRegistryに登録される前に呼び出されるフックメソッド。派生クラスは、このメソッドをオーバーライドして、すべての解析が完了した後に実行されるカスタムロジックを提供できます。
デフォルトの実装はノーオペレーションです。
- パラメーター:
componentDefinition- 処理されるBeanComponentDefinition