クラス RootBeanDefinition
- 実装されたすべてのインターフェース:
SerializableSE
、CloneableSE
、BeanMetadataElement
、BeanDefinition
、AttributeAccessor
GenericBeanDefinitions
など、互いに継承する複数の元の Bean 定義から作成された可能性があります。ルート Bean 定義は、基本的に実行時の「統合された」Bean 定義ビューです。 ルート Bean 定義は、 構成フェーズで個々の Bean 定義を登録するためにも使用できます。これは、追加の型メタデータ (setTargetType(ResolvableType)
/setResolvedFactoryMethod(Method)
を参照) が付属するファクトリメソッド (@Bean
メソッドなど) およびインスタンスサプライヤー (ラムダ式など) から派生したプログラム定義に特に適用されます。
メモ: 宣言型ソース (XML 定義など) から派生した Bean 定義の推奨される選択肢は、柔軟な GenericBeanDefinition
バリアントです。GenericBeanDefinition の利点は、ルート Bean 定義としてのロールを「ハードコード」せずに親依存関連を動的に定義でき、Bean ポストプロセッサーフェーズで親関連の変更もサポートできることです。
- 作成者:
- Rod Johnson, Juergen Hoeller, Sam Brannen
- 関連事項:
フィールドサマリー
クラス org.springframework.beans.factory.support.AbstractBeanDefinition から継承されたフィールド
AUTOWIRE_AUTODETECT, AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_CONSTRUCTOR, AUTOWIRE_NO, DEPENDENCY_CHECK_ALL, DEPENDENCY_CHECK_NONE, DEPENDENCY_CHECK_OBJECTS, DEPENDENCY_CHECK_SIMPLE, INFER_METHOD, ORDER_ATTRIBUTE, PREFERRED_CONSTRUCTORS_ATTRIBUTE, SCOPE_DEFAULT
インターフェース org.springframework.beans.factory.config.BeanDefinition から継承されたフィールド
ROLE_APPLICATION, ROLE_INFRASTRUCTURE, ROLE_SUPPORT, SCOPE_PROTOTYPE, SCOPE_SINGLETON
コンストラクターのサマリー
コンストラクター説明新しい RootBeanDefinition を作成し、その Bean プロパティと構成メソッドを使用して構成します。RootBeanDefinition
(ClassSE<?> beanClass) シングルトンの新しい RootBeanDefinition を作成します。RootBeanDefinition
(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) 指定された autowire モードを使用して、シングルトンの新しい RootBeanDefinition を作成します。RootBeanDefinition
(ClassSE<?> beanClass, ConstructorArgumentValues cargs, MutablePropertyValues pvs) シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。RootBeanDefinition
(ClassSE<T> beanClass, StringSE scope, SupplierSE<T> instanceSupplier) スコープ指定された Bean の新しい RootBeanDefinition を作成し、指定されたサプライヤー(おそらくラムダまたはメソッド参照)を呼び出して各インスタンスを構築します。RootBeanDefinition
(ClassSE<T> beanClass, SupplierSE<T> instanceSupplier) シングルトン Bean の新しい RootBeanDefinition を作成し、指定されたサプライヤー(おそらくラムダまたはメソッド参照)を呼び出して各インスタンスを構築します。RootBeanDefinition
(StringSE beanClassName) シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。RootBeanDefinition
(StringSE beanClassName, ConstructorArgumentValues cargs, MutablePropertyValues pvs) シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。RootBeanDefinition
(RootBeanDefinition original) 指定された Bean 定義のディープコピーとして新しい RootBeanDefinition を作成します。RootBeanDefinition
(ResolvableType beanType) 使用すべきではありません。方法の概要
修飾子と型メソッド説明この Bean 定義を複製します。boolean
この Bean 定義によって装飾されているターゲット定義があれば、それを返します。外部で管理されているすべての構成メソッドとフィールドを(不変のセットとして)取得します。外部で管理されているすべての破棄メソッドを(不変のセットとして)取得します。外部で管理されているすべての初期化メソッドを (不変の Set として) 取得します。この Bean 定義の親定義の名前を返します(ある場合)。ConstructorSE<?>[]
存在する場合、デフォルトの構築に使用する優先コンストラクターを決定します。AnnotatedElement
SE 定義修飾子があれば、それを返します。この Bean 定義のResolvableType
を、実行時にキャッシュされた型情報から、構成時のsetTargetType(ResolvableType)
またはAbstractBeanDefinition.setBeanClass(Class)
から返します。解決されたファクトリメソッド定義も考慮されます。解決されたファクトリメソッドを Java メソッドオブジェクトとして返します(利用可能な場合)。ClassSE<?>
この Bean 定義のターゲット型を返します(事前に指定されているか、最初のインスタンス化で解決されている場合)。boolean
isExternallyManagedConfigMember
(MemberSE configMember) 指定されたメソッドまたはフィールドが外部で管理されている構成メンバーであるかどうかを判別します。boolean
isExternallyManagedDestroyMethod
(StringSE destroyMethod) 指定されたメソッド名が外部で管理されている破棄メソッドを示しているかどうかを判別してください。boolean
isExternallyManagedInitMethod
(StringSE initMethod) 指定されたメソッド名が外部管理の初期化メソッドを示しているかどうかを判別してください。boolean
isFactoryMethod
(MethodSE candidate) 指定された候補がファクトリメソッドとしての資格があるかどうかを確認します。void
この Bean 定義を後処理としてマークします。void
registerExternallyManagedConfigMember
(MemberSE configMember) 外部管理の構成方法またはフィールドを登録します。void
registerExternallyManagedDestroyMethod
(StringSE destroyMethod) 外部で管理されている構成破棄メソッドを登録します。たとえば、JSR-250 のPreDestroy
EE アノテーションが付けられたメソッド。void
registerExternallyManagedInitMethod
(StringSE initMethod) 外部管理の構成初期化メソッドを登録します。たとえば、JSR-250 のjavax.annotation.PostConstruct
アノテーションまたは Jakarta のPostConstruct
EE アノテーションが付けられたメソッドです。void
必要に応じて、推定された destroy メソッドを解決します。void
setDecoratedDefinition
(BeanDefinitionHolder decoratedDefinition) この Bean 定義によって装飾されているターゲット定義を登録します。void
オーバーロードされたメソッドを参照するファクトリメソッド名を指定します。void
setParentName
(StringSE parentName) この Bean 定義の親定義の名前を設定します(ある場合)。void
setQualifiedElement
(AnnotatedElementSE qualifiedElement) ターゲットクラスまたはファクトリメソッドの代わりに使用するAnnotatedElement
SE 定義修飾子を指定します。void
setResolvedFactoryMethod
(MethodSE method) この Bean 定義のファクトリメソッドの解決された Java メソッドを設定します。void
setTargetType
(ClassSE<?> targetType) 事前にわかっている場合は、この Bean 定義のターゲット型を指定します。void
setTargetType
(ResolvableType targetType) 事前にわかっている場合は、この Bean 定義のジェネリクスを含むターゲット型を指定します。void
オーバーロードされていないメソッドを参照するファクトリメソッド名を指定します。toString()
クラス org.springframework.beans.factory.support.AbstractBeanDefinition から継承されたメソッド
addQualifier, applyDefaults, clone, copyQualifiersFrom, getAutowireMode, getBeanClass, getBeanClassName, getConstructorArgumentValues, getDependencyCheck, getDependsOn, getDescription, getDestroyMethodName, getDestroyMethodNames, getFactoryBeanName, getFactoryMethodName, getInitMethodName, getInitMethodNames, getInstanceSupplier, getLazyInit, getMethodOverrides, getOriginatingBeanDefinition, getPropertyValues, getQualifier, getQualifiers, getResolvedAutowireMode, getResource, getResourceDescription, getRole, getScope, hasBeanClass, hasConstructorArgumentValues, hashCode, hasMethodOverrides, hasPropertyValues, hasQualifier, isAbstract, isAutowireCandidate, isBackgroundInit, isDefaultCandidate, isEnforceDestroyMethod, isEnforceInitMethod, isFallback, isLazyInit, isLenientConstructorResolution, isNonPublicAccessAllowed, isPrimary, isPrototype, isSingleton, isSynthetic, overrideFrom, prepareMethodOverride, prepareMethodOverrides, resolveBeanClass, setAbstract, setAutowireCandidate, setAutowireMode, setBackgroundInit, setBeanClass, setBeanClassName, setConstructorArgumentValues, setDefaultCandidate, setDependencyCheck, setDependsOn, setDescription, setDestroyMethodName, setDestroyMethodNames, setEnforceDestroyMethod, setEnforceInitMethod, setFactoryBeanName, setFactoryMethodName, setFallback, setInitMethodName, setInitMethodNames, setInstanceSupplier, setLazyInit, setLenientConstructorResolution, setMethodOverrides, setNonPublicAccessAllowed, setOriginatingBeanDefinition, setPrimary, setPropertyValues, setResource, setResourceDescription, setRole, setScope, setSynthetic, validate
クラス org.springframework.beans.BeanMetadataAttributeAccessor から継承されたメソッド
addMetadataAttribute, getAttribute, getMetadataAttribute, getSource, removeAttribute, setAttribute, setSource
クラス org.springframework.core.AttributeAccessorSupport から継承されたメソッド
attributeNames, computeAttribute, copyAttributesFrom, hasAttribute
インターフェース org.springframework.core.AttributeAccessor から継承されたメソッド
attributeNames, computeAttribute, getAttribute, hasAttribute, removeAttribute, setAttribute
インターフェース org.springframework.beans.BeanMetadataElement から継承されたメソッド
getSource
コンストラクターの詳細
RootBeanDefinition
public RootBeanDefinition()新しい RootBeanDefinition を作成し、その Bean プロパティと構成メソッドを使用して構成します。- 関連事項:
AbstractBeanDefinition.setBeanClass(java.lang.Class<?>)
AbstractBeanDefinition.setScope(java.lang.String)
AbstractBeanDefinition.setConstructorArgumentValues(org.springframework.beans.factory.config.ConstructorArgumentValues)
AbstractBeanDefinition.setPropertyValues(org.springframework.beans.MutablePropertyValues)
RootBeanDefinition
シングルトンの新しい RootBeanDefinition を作成します。- パラメーター:
beanClass
- インスタンス化する Bean のクラス- 関連事項:
RootBeanDefinition
使用すべきではありません。6.0.11 以降、追加のsetTargetType(ResolvableType)
コールを推奨シングルトンの新しい RootBeanDefinition を作成します。- パラメーター:
beanType
- インスタンス化する Bean の型- 導入:
- 6.0
- 関連事項:
RootBeanDefinition
シングルトン Bean の新しい RootBeanDefinition を作成し、指定されたサプライヤー(おそらくラムダまたはメソッド参照)を呼び出して各インスタンスを構築します。- パラメーター:
beanClass
- インスタンス化する Bean のクラスinstanceSupplier
- 宣言的に指定されたファクトリメソッドの代わりとして、Bean インスタンスを構築するサプライヤー- 導入:
- 5.0
- 関連事項:
RootBeanDefinition
public RootBeanDefinition(@Nullable ClassSE<T> beanClass, StringSE scope, @Nullable SupplierSE<T> instanceSupplier) スコープ指定された Bean の新しい RootBeanDefinition を作成し、指定されたサプライヤー(おそらくラムダまたはメソッド参照)を呼び出して各インスタンスを構築します。- パラメーター:
beanClass
- インスタンス化する Bean のクラスscope
- 対応するスコープの名前instanceSupplier
- 宣言的に指定されたファクトリメソッドの代わりとして、Bean インスタンスを構築するサプライヤー- 導入:
- 5.0
- 関連事項:
RootBeanDefinition
public RootBeanDefinition(@Nullable ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) 指定された autowire モードを使用して、シングルトンの新しい RootBeanDefinition を作成します。- パラメーター:
beanClass
- インスタンス化する Bean のクラスautowireMode
- このインターフェースの定数を使用して、名前または型dependencyCheck
- オブジェクトの依存性チェックを実行するかどうか (コンストラクターのオートワイヤーには適用されないため、そこで無視されます)
RootBeanDefinition
public RootBeanDefinition(@Nullable ClassSE<?> beanClass, @Nullable ConstructorArgumentValues cargs, @Nullable MutablePropertyValues pvs) シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。- パラメーター:
beanClass
- インスタンス化する Bean のクラスcargs
- 適用するコンストラクターの引数値pvs
- 適用するプロパティ値
RootBeanDefinition
シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。Bean クラスの積極的なロードを回避するために、Bean クラス名を取ります。
- パラメーター:
beanClassName
- インスタンス化するクラスの名前
RootBeanDefinition
public RootBeanDefinition(StringSE beanClassName, ConstructorArgumentValues cargs, MutablePropertyValues pvs) シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。Bean クラスの積極的なロードを回避するために、Bean クラス名を取ります。
- パラメーター:
beanClassName
- インスタンス化するクラスの名前cargs
- 適用するコンストラクターの引数値pvs
- 適用するプロパティ値
RootBeanDefinition
指定された Bean 定義のディープコピーとして新しい RootBeanDefinition を作成します。- パラメーター:
original
- コピー元の元の Bean 定義
メソッドの詳細
getParentName
インターフェースからコピーされた説明:BeanDefinition
この Bean 定義の親定義の名前を返します(ある場合)。setParentName
インターフェースからコピーされた説明:BeanDefinition
この Bean 定義の親定義の名前を設定します(ある場合)。setDecoratedDefinition
この Bean 定義によって装飾されているターゲット定義を登録します。getDecoratedDefinition
この Bean 定義によって装飾されているターゲット定義があれば、それを返します。setQualifiedElement
ターゲットクラスまたはファクトリメソッドの代わりに使用するAnnotatedElement
SE 定義修飾子を指定します。- 導入:
- 4.3.3
- 関連事項:
getQualifiedElement
AnnotatedElement
SE 定義修飾子があれば、それを返します。それ以外の場合は、ファクトリメソッドとターゲットクラスがチェックされます。- 導入:
- 4.3.3
setTargetType
事前にわかっている場合は、この Bean 定義のジェネリクスを含むターゲット型を指定します。- 導入:
- 4.3.3
setTargetType
事前にわかっている場合は、この Bean 定義のターゲット型を指定します。- 導入:
- 3.2.2
getTargetType
この Bean 定義のターゲット型を返します(事前に指定されているか、最初のインスタンス化で解決されている場合)。- 導入:
- 3.2.2
getResolvableType
この Bean 定義のResolvableType
を、実行時にキャッシュされた型情報から、構成時のsetTargetType(ResolvableType)
またはAbstractBeanDefinition.setBeanClass(Class)
から返します。解決されたファクトリメソッド定義も考慮されます。- 次で指定:
- インターフェース
BeanDefinition
のgetResolvableType
- オーバーライド:
- クラス
AbstractBeanDefinition
のgetResolvableType
- 戻り値:
- 解決可能な型 (潜在的に
ResolvableType.NONE
) - 導入:
- 5.1
- 関連事項:
getPreferredConstructors
もしあれば、デフォルトの構築に使用する優先コンストラクターを決定します。コンストラクターの引数は、必要に応じてオートワイヤーされます。6.1 以降、このメソッドのデフォルト実装では
AbstractBeanDefinition.PREFERRED_CONSTRUCTORS_ATTRIBUTE
属性が考慮されます。サブクラスは、独自の優先コンストラクターを決定する前または後のいずれかに、super
呼び出しを通じてこれを保存することが推奨されます。- 戻り値:
- 1 つ以上の優先コンストラクター、またはない場合は
null
(その場合、通常の引数なしのデフォルトコンストラクターが呼び出されます) - 導入:
- 5.1
setUniqueFactoryMethodName
オーバーロードされていないメソッドを参照するファクトリメソッド名を指定します。setNonUniqueFactoryMethodName
オーバーロードされたメソッドを参照するファクトリメソッド名を指定します。- 導入:
- 5.2
isFactoryMethod
指定された候補がファクトリメソッドとしての資格があるかどうかを確認します。setResolvedFactoryMethod
この Bean 定義のファクトリメソッドの解決された Java メソッドを設定します。- パラメーター:
method
- 解決されたファクトリメソッド、またはそれをリセットするためのnull
- 導入:
- 5.2
getResolvedFactoryMethod
解決されたファクトリメソッドを Java メソッドオブジェクトとして返します(利用可能な場合)。- 戻り値:
- ファクトリメソッド。
null
が見つからないか解決されていない場合
markAsPostProcessed
public void markAsPostProcessed()この Bean 定義を後処理済み、つまりMergedBeanDefinitionPostProcessor
によって処理済みとしてマークします。- 導入:
- 6.0
registerExternallyManagedConfigMember
外部管理の構成方法またはフィールドを登録します。isExternallyManagedConfigMember
指定されたメソッドまたはフィールドが外部で管理されている構成メンバーであるかどうかを判別します。getExternallyManagedConfigMembers
外部で管理されているすべての構成メソッドとフィールドを(不変のセットとして)取得します。- 導入:
- 5.3.11
registerExternallyManagedInitMethod
外部管理の構成初期化メソッドを登録します。たとえば、JSR-250 のjavax.annotation.PostConstruct
アノテーションまたは Jakarta のPostConstruct
EE アノテーションが付けられたメソッドです。指定された
initMethod
は、単純なメソッド名であることも、パッケージプライベートメソッドおよびprivate
メソッドの修飾されたメソッド名であることもあります。package-private メソッドとprivate
メソッドには、型階層内で同じ名前を持つ複数のメソッド間で曖昧さをなくすために、修飾名が必要です。isExternallyManagedInitMethod
指定されたメソッド名が外部管理の初期化メソッドを示しているかどうかを判別してください。付属の
initMethod
のフォーマットの詳細については、registerExternallyManagedInitMethod(java.lang.String)
を参照してください。getExternallyManagedInitMethods
外部で管理されているすべての初期化メソッドを (不変の Set として) 取得します。返されたセットの初期化メソッドの形式の詳細については、
registerExternallyManagedInitMethod(java.lang.String)
を参照してください。- 導入:
- 5.3.11
resolveDestroyMethodIfNecessary
public void resolveDestroyMethodIfNecessary()必要に応じて、推定された destroy メソッドを解決します。- 導入:
- 6.0
registerExternallyManagedDestroyMethod
外部で管理されている構成破棄メソッドを登録します。たとえば、JSR-250 のPreDestroy
EE アノテーションが付けられたメソッド。提供される
destroyMethod
は、非プライベートメソッドの場合は単純なメソッド名、private
メソッドの場合は修飾メソッド名です。クラス階層内で同じ名前を持つ複数のプライベートメソッドを明確にするために、private
メソッドには修飾名が必要です。isExternallyManagedDestroyMethod
指定されたメソッド名が外部で管理されている破棄メソッドを示しているかどうかを判別してください。付属の
destroyMethod
のフォーマットの詳細については、registerExternallyManagedDestroyMethod(java.lang.String)
を参照してください。getExternallyManagedDestroyMethods
外部で管理されているすべての破棄メソッドを(不変のセットとして)取得します。返されたセットの破棄メソッドの形式の詳細については、
registerExternallyManagedDestroyMethod(java.lang.String)
を参照してください。- 導入:
- 5.3.11
cloneBeanDefinition
クラスからコピーされた説明:AbstractBeanDefinition
この Bean 定義を複製します。具象サブクラスによって実装されます。- 次で指定:
- クラス
AbstractBeanDefinition
のcloneBeanDefinition
- 戻り値:
- 複製された Bean 定義オブジェクト
equals
- オーバーライド:
- クラス
AbstractBeanDefinition
のequals
toString
- オーバーライド:
- クラス
AbstractBeanDefinition
のtoString
setTargetType(ResolvableType)
コールを推奨