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 ベースの構成の場合、これは通常、ユーザー指定の構成情報を含む Node
SE です。これに加えて、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 のユーザーに表示される名前を取得します。 |
getSource
StringSE 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
内に存在する場合がありますが、これらは検証やユーザーの視覚化に必要であるとは見なされていません。