public interface ComponentDefinition extends BeanMetadataElement
BeanDefinitions および BeanReferences のセットの論理ビューを記述するインターフェース。pluggable custom XML tags の導入により、単一の論理構成エンティティ(この場合は XML タグ)で複数の BeanDefinitions および RuntimeBeanReferences を作成して、より簡潔な構成とエンドユーザーの利便性を提供できるようになりました。そのため、各構成エンティティ(XML タグなど)が 1 つの BeanDefinition にマップされていると想定することはできません。Spring アプリケーションの構成の視覚化またはサポートを提供したいツールベンダーやその他のユーザーにとっては、エンドユーザーにとって具体的な意味を持つ方法で BeanFactory の BeanDefinitions を構成データに結び付けるための何らかのメカニズムがあることが重要です。そのため、NamespaceHandler 実装は、構成されている論理エンティティごとに ComponentDefinition の形式でイベントを発行できます。サードパーティは subscribe to these events を使用して、ユーザー中心の Bean メタデータを表示できます。
各 ComponentDefinition には、構成固有の source object があります。XML ベースの構成の場合、これは通常、ユーザー指定の構成情報を含む NodeSE です。これに加えて、ComponentDefinition に含まれる各 BeanDefinition には独自の source object があり、異なるより具体的な構成データのセットを指す場合があります。これを超えると、PropertyValues などの Bean メタデータの個々の部分にも、さらに詳細なレベルを提供するソースオブジェクトが含まれる場合があります。ソースオブジェクトの抽出は、必要に応じてカスタマイズできる SourceExtractor を介して処理されます。
重要な BeanReferences への直接アクセスは getBeanReferences() を通じて提供されますが、ツールはすべての BeanDefinitions をインスペクションして BeanReferences の完全なセットを収集したい場合があります。実装は、論理エンティティ全体の構成を検証するために必要なすべての BeanReferences と、構成の完全なユーザー視覚化を提供するために必要なものを提供する必要があります。特定の BeanReferences は、検証や構成のユーザービューにとって重要ではないため、これらを省略できる場合があります。ツールは、提供された BeanDefinitions から供給された追加の BeanReferences を表示したい場合がありますが、これは一般的なケースとは見なされません。
ツールは、role identifier をチェックすることにより、含まれている BeanDefinitions の重要性を判断できます。ロールは本質的に、構成プロバイダーが BeanDefinition がエンドユーザーにとってどれほど重要であると考えるかに関するツールへのヒントです。ツールは、ロールに基づいてフィルターする代わりに選択した特定の ComponentDefinition のすべての BeanDefinitions を表示しないことが予想されます。ツールは、このフィルタリングをユーザーが構成可能にすることを選択できます。INFRASTRUCTURE role identifier には特に注意が必要です。このロールで分類された BeanDefinitions は、エンドユーザーにとってまったく重要ではなく、内部実装の理由でのみ必要です。
AbstractComponentDefinition, CompositeComponentDefinition, BeanComponentDefinition, ReaderEventListener.componentRegistered(ComponentDefinition)| 修飾子と型 | メソッドと説明 |
|---|---|
BeanDefinition[] | getBeanDefinitions() この ComponentDefinition を形成するために登録された BeanDefinitions を返します。 |
BeanReference[] | getBeanReferences() この ComponentDefinition にとって重要であると見なされる BeanReferences のセットを返します。 |
StringSE | getDescription() 説明されたコンポーネントのわかりやすい説明を返します。 |
BeanDefinition[] | getInnerBeanDefinitions() このコンポーネント内の関連するすべてのインナー Bean を表す BeanDefinitions を返します。 |
StringSE | getName() この ComponentDefinition のユーザーに表示される名前を取得します。 |
getSourceStringSE getName()
ComponentDefinition のユーザーに表示される名前を取得します。これは、特定のコンテキストでこのコンポーネントに対応する構成データに直接リンクする必要があります。
StringSE getDescription()
実装では、toString() から同じ値を返すことをお勧めします。
BeanDefinition[] getBeanDefinitions()
ComponentDefinition を形成するために登録された BeanDefinitions を返します。ComponentDefinition は references を介して他の BeanDefinitions と関連している可能性がありますが、これらはすぐには利用できない可能性があるため含まれていません。重要な BeanReferences は getBeanReferences() から入手できます。
BeanDefinition[] getInnerBeanDefinitions()
BeanDefinitions を返します。 他のインナー Bean が関連する BeanDefinitions 内に存在する場合がありますが、これらは検証やユーザーの視覚化に必要であるとは見なされていません。
BeanReference[] getBeanReferences()
ComponentDefinition にとって重要であると見なされる BeanReferences のセットを返します。 他の BeanReferences が関連する BeanDefinitions 内に存在する場合がありますが、これらは検証やユーザーの視覚化に必要であるとは見なされていません。