public abstract class AbstractBeanDefinitionParser extends ObjectSE implements BeanDefinitionParser
template method を提供する抽象 BeanDefinitionParser 実装。 任意の複雑な XML を 1 つ以上の BeanDefinitions に解析する場合は、この BeanDefinitionParser 実装を使用します。XML を 1 つの BeanDefinition に解析するだけの場合は、このクラスのより簡単で便利な拡張機能、つまり AbstractSingleBeanDefinitionParser および AbstractSimpleBeanDefinitionParser を検討することをお勧めします。
| 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | ID_ATTRIBUTE"id" 属性の定数。 |
static StringSE | NAME_ATTRIBUTE"name" 属性の定数。 |
| コンストラクターと説明 |
|---|
AbstractBeanDefinitionParser() |
| 修飾子と型 | メソッドと説明 |
|---|---|
BeanDefinition | parse(ElementSE element, ParserContext parserContext) 指定された ElementSE を解析し、結果の BeanDefinition(s) を、提供された ParserContext に埋め込まれた BeanDefinitionRegistry に登録します。 |
protected abstract AbstractBeanDefinition | parseInternal(ElementSE element, ParserContext parserContext) 提供された ElementSE を 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 | shouldFireEvents() このパーサーが Bean 定義の解析後に BeanComponentDefinition イベントを発生させることになっているかどうかを判別します。 |
protected boolean | shouldGenerateId() 渡された ElementSE から読み取る代わりに ID を生成する必要がありますか? |
protected boolean | shouldGenerateIdAsFallback() 渡された ElementSE が "id" 属性を明示的に指定していない場合は、代わりに ID を生成する必要がありますか? |
protected boolean | shouldParseNameAsAliases() 要素の "name" 属性を Bean 定義のエイリアスとして解析するかどうかを決定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE@Nullable public final BeanDefinition parse(ElementSE element, ParserContext parserContext)
BeanDefinitionParserElementSE を解析し、結果の BeanDefinition(s) を、提供された ParserContext に埋め込まれた BeanDefinitionRegistry に登録します。 実装は、ネストされた方法で(たとえば、<property/> タグの内部タグとして)使用される場合、解析の結果であるプライマリ BeanDefinition を返す必要があります。ネストされた方法で使用されない場合、実装は null を返す場合があります。
BeanDefinitionParser の parse element - 1 つ以上の BeanDefinitions に解析される要素 parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト。BeanDefinitionRegistry へのアクセスを提供します BeanDefinitionprotected StringSE resolveId(ElementSE element, AbstractBeanDefinition definition, ParserContext parserContext) throws BeanDefinitionStoreException
BeanDefinition の ID を解決します。generation を使用すると、名前が自動的に生成されます。それ以外の場合、ID は "id" 属性から抽出され、fallback を使用して生成された ID になる可能性があります。
element - Bean 定義が作成された要素 definition - 登録する Bean 定義 parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト。BeanDefinitionRegistry へのアクセスを提供します BeanDefinitionStoreException - 指定された Bean 定義に対して一意の名前を生成できなかった場合 protected void registerBeanDefinition(BeanDefinitionHolder definition, BeanDefinitionRegistry registry)
bean を提供された registry に登録します。 サブクラスはこのメソッドをオーバーライドして、提供された bean が実際に登録されているかどうかを制御したり、さらに多くの Bean を登録したりできます。
デフォルトの実装では、isNested パラメーターが false の場合にのみ、指定された bean が指定された registry に登録されます。これは、通常、内部 Bean をトップレベル Bean として登録したくないためです。
definition - 登録する Bean 定義 registry - Bean が登録されるレジストリ BeanDefinitionReaderUtils.registerBeanDefinition(BeanDefinitionHolder, BeanDefinitionRegistry)@Nullable protected abstract AbstractBeanDefinition parseInternal(ElementSE element, ParserContext parserContext)
ElementSE を 1 つ以上の BeanDefinitions に実際に解析する主要テンプレートメソッド。element - 1 つ以上の BeanDefinitions に解析される要素 parserContext - 解析プロセスの現在の状態をカプセル化するオブジェクト。BeanDefinitionRegistry へのアクセスを提供します ElementSE の構文解析の結果の 1 次 BeanDefinitionparse(org.w3c.dom.Element, ParserContext), postProcessComponentDefinition(org.springframework.beans.factory.parsing.BeanComponentDefinition)protected boolean shouldGenerateId()
ElementSE から読み取る代わりに ID を生成する必要がありますか? デフォルトでは無効になっています。サブクラスはこれをオーバーライドして ID 生成を有効にすることができます。このフラグは常に ID を生成することに注意してください。この場合、パーサーは "id" 属性をチェックしません。
protected boolean shouldGenerateIdAsFallback()
ElementSE が "id" 属性を明示的に指定していない場合は、代わりに ID を生成する必要がありますか? デフォルトでは無効になっています。サブクラスはこれをオーバーライドして、ID 生成をフォールバックとして有効にすることができます。この場合、パーサーは最初に "id" 属性をチェックし、値が指定されていない場合にのみ生成された ID にフォールバックします。
protected boolean shouldParseNameAsAliases()
デフォルトの実装は true を返します。
protected boolean shouldFireEvents()
BeanComponentDefinition イベントを発生させることになっているかどうかを判別します。 この実装はデフォルトで true を返します。つまり、Bean 定義が完全に解析されたときにイベントが発生します。イベントを抑制するために、これをオーバーライドして false を返します。
true は、Bean 定義の解析後にコンポーネント登録イベントを発生させるために使用します。イベントを抑制する false postProcessComponentDefinition(org.springframework.beans.factory.parsing.BeanComponentDefinition), ReaderContext.fireComponentRegistered(org.springframework.beans.factory.parsing.ComponentDefinition)protected void postProcessComponentDefinition(BeanComponentDefinition componentDefinition)
BeanComponentDefinition の一次解析の後、BeanComponentDefinition が BeanDefinitionRegistry に登録される前に呼び出されるフックメソッド。派生クラスは、このメソッドをオーバーライドして、すべての解析が完了した後に実行されるカスタムロジックを提供できます。
デフォルトの実装はノーオペレーションです。
componentDefinition - 処理される BeanComponentDefinition