クラス RootBeanDefinition

実装されたすべてのインターフェース:
SerializableSECloneableSEBeanMetadataElementBeanDefinitionAttributeAccessor

public class RootBeanDefinition extends AbstractBeanDefinition
ルート Bean 定義は、 実行時にマージされた Bean 定義を表し、Spring BeanFactory 内の特定の Bean をバックアップします。これは、XML 宣言からの GenericBeanDefinitions など、互いに継承する複数の元の Bean 定義から作成された可能性があります。ルート Bean 定義は、基本的に実行時の「統合された」Bean 定義ビューです。

ルート Bean 定義は、 構成フェーズで個々の Bean 定義を登録するためにも使用できます。これは、追加の型メタデータ (setTargetType(ResolvableType)/setResolvedFactoryMethod(Method) を参照) が付属するファクトリメソッド (@Bean メソッドなど) およびインスタンスサプライヤー (ラムダ式など) から派生したプログラム定義に特に適用されます。

メモ: 宣言型ソース (XML 定義など) から派生した Bean 定義の推奨される選択肢は、柔軟な GenericBeanDefinition バリアントです。GenericBeanDefinition の利点は、ルート Bean 定義としてのロールを「ハードコード」せずに親依存関連を動的に定義でき、Bean ポストプロセッサーフェーズで親関連の変更もサポートできることです。

作成者:
Rod Johnson, Juergen Hoeller, Sam Brannen
関連事項:
  • コンストラクターの詳細

    • RootBeanDefinition

      public RootBeanDefinition()
      新しい RootBeanDefinition を作成し、その Bean プロパティと構成メソッドを使用して構成します。
      関連事項:
    • RootBeanDefinition

      public RootBeanDefinition(@Nullable ClassSE<?> beanClass)
      シングルトンの新しい RootBeanDefinition を作成します。
      パラメーター:
      beanClass - インスタンス化する Bean のクラス
      関連事項:
    • RootBeanDefinition

      @DeprecatedSE(since="6.0.11") public RootBeanDefinition(@Nullable ResolvableType beanType)
      使用すべきではありません。
      6.0.11 以降、追加の setTargetType(ResolvableType) コールを推奨
      シングルトンの新しい RootBeanDefinition を作成します。
      パラメーター:
      beanType - インスタンス化する Bean の型
      導入:
      6.0
      関連事項:
    • RootBeanDefinition

      public RootBeanDefinition(@Nullable ClassSE<T> beanClass, @Nullable SupplierSE<T> instanceSupplier)
      シングルトン 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

      public RootBeanDefinition(StringSE beanClassName)
      シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。

      Bean クラスの積極的なロードを回避するために、Bean クラス名を取ります。

      パラメーター:
      beanClassName - インスタンス化するクラスの名前
    • RootBeanDefinition

      public RootBeanDefinition(StringSE beanClassName, ConstructorArgumentValues cargs, MutablePropertyValues pvs)
      シングルトンの新しい RootBeanDefinition を作成し、コンストラクターの引数とプロパティ値を指定します。

      Bean クラスの積極的なロードを回避するために、Bean クラス名を取ります。

      パラメーター:
      beanClassName - インスタンス化するクラスの名前
      cargs - 適用するコンストラクターの引数値
      pvs - 適用するプロパティ値
    • RootBeanDefinition

      public RootBeanDefinition(RootBeanDefinition original)
      指定された Bean 定義のディープコピーとして新しい RootBeanDefinition を作成します。
      パラメーター:
      original - コピー元の元の Bean 定義
  • メソッドの詳細

    • getParentName

      @Nullable public StringSE getParentName()
      インターフェースからコピーされた説明: BeanDefinition
      この Bean 定義の親定義の名前を返します(ある場合)。
    • setParentName

      public void setParentName(@Nullable StringSE parentName)
      インターフェースからコピーされた説明: BeanDefinition
      この Bean 定義の親定義の名前を設定します(ある場合)。
    • setDecoratedDefinition

      public void setDecoratedDefinition(@Nullable BeanDefinitionHolder decoratedDefinition)
      この Bean 定義によって装飾されているターゲット定義を登録します。
    • getDecoratedDefinition

      @Nullable public BeanDefinitionHolder getDecoratedDefinition()
      この Bean 定義によって装飾されているターゲット定義があれば、それを返します。
    • setQualifiedElement

      public void setQualifiedElement(@Nullable AnnotatedElementSE qualifiedElement)
      ターゲットクラスまたはファクトリメソッドの代わりに使用する AnnotatedElementSE 定義修飾子を指定します。
      導入:
      4.3.3
      関連事項:
    • getQualifiedElement

      @Nullable public AnnotatedElementSE getQualifiedElement()
      AnnotatedElementSE 定義修飾子があれば、それを返します。それ以外の場合は、ファクトリメソッドとターゲットクラスがチェックされます。
      導入:
      4.3.3
    • setTargetType

      public void setTargetType(@Nullable ResolvableType targetType)
      事前にわかっている場合は、この Bean 定義のジェネリクスを含むターゲット型を指定します。
      導入:
      4.3.3
    • setTargetType

      public void setTargetType(@Nullable ClassSE<?> targetType)
      事前にわかっている場合は、この Bean 定義のターゲット型を指定します。
      導入:
      3.2.2
    • getTargetType

      @Nullable public ClassSE<?> getTargetType()
      この Bean 定義のターゲット型を返します(事前に指定されているか、最初のインスタンス化で解決されている場合)。
      導入:
      3.2.2
    • getResolvableType

      public ResolvableType getResolvableType()
      この Bean 定義の ResolvableType を、実行時にキャッシュされた型情報から、構成時の setTargetType(ResolvableType) または AbstractBeanDefinition.setBeanClass(Class) から返します。解決されたファクトリメソッド定義も考慮されます。
      次で指定:
      インターフェース BeanDefinitiongetResolvableType 
      オーバーライド:
      クラス AbstractBeanDefinitiongetResolvableType 
      戻り値:
      解決可能な型 (潜在的に ResolvableType.NONE )
      導入:
      5.1
      関連事項:
    • getPreferredConstructors

      @Nullable public ConstructorSE<?>[] getPreferredConstructors()
      もしあれば、デフォルトの構築に使用する優先コンストラクターを決定します。コンストラクターの引数は、必要に応じてオートワイヤーされます。

      6.1 以降、このメソッドのデフォルト実装では AbstractBeanDefinition.PREFERRED_CONSTRUCTORS_ATTRIBUTE 属性が考慮されます。サブクラスは、独自の優先コンストラクターを決定する前または後のいずれかに、super 呼び出しを通じてこれを保存することが推奨されます。

      戻り値:
      1 つ以上の優先コンストラクター、またはない場合は null (その場合、通常の引数なしのデフォルトコンストラクターが呼び出されます)
      導入:
      5.1
    • setUniqueFactoryMethodName

      public void setUniqueFactoryMethodName(StringSE name)
      オーバーロードされていないメソッドを参照するファクトリメソッド名を指定します。
    • setNonUniqueFactoryMethodName

      public void setNonUniqueFactoryMethodName(StringSE name)
      オーバーロードされたメソッドを参照するファクトリメソッド名を指定します。
      導入:
      5.2
    • isFactoryMethod

      public boolean isFactoryMethod(MethodSE candidate)
      指定された候補がファクトリメソッドとしての資格があるかどうかを確認します。
    • setResolvedFactoryMethod

      public void setResolvedFactoryMethod(@Nullable MethodSE method)
      この Bean 定義のファクトリメソッドの解決された Java メソッドを設定します。
      パラメーター:
      method - 解決されたファクトリメソッド、またはそれをリセットするための null 
      導入:
      5.2
    • getResolvedFactoryMethod

      @Nullable public MethodSE getResolvedFactoryMethod()
      解決されたファクトリメソッドを Java メソッドオブジェクトとして返します(利用可能な場合)。
      戻り値:
      ファクトリメソッド。null が見つからないか解決されていない場合
    • markAsPostProcessed

      public void markAsPostProcessed()
      この Bean 定義を後処理済み、つまり MergedBeanDefinitionPostProcessor によって処理済みとしてマークします。
      導入:
      6.0
    • registerExternallyManagedConfigMember

      public void registerExternallyManagedConfigMember(MemberSE configMember)
      外部管理の構成方法またはフィールドを登録します。
    • isExternallyManagedConfigMember

      public boolean isExternallyManagedConfigMember(MemberSE configMember)
      指定されたメソッドまたはフィールドが外部で管理されている構成メンバーであるかどうかを判別します。
    • getExternallyManagedConfigMembers

      public SetSE<MemberSE> getExternallyManagedConfigMembers()
      外部で管理されているすべての構成メソッドとフィールドを(不変のセットとして)取得します。
      導入:
      5.3.11
    • registerExternallyManagedInitMethod

      public void registerExternallyManagedInitMethod(StringSE initMethod)
      外部管理の構成初期化メソッドを登録します。たとえば、JSR-250 の javax.annotation.PostConstruct アノテーションまたは Jakarta の PostConstructEE アノテーションが付けられたメソッドです。

      指定された initMethod は、単純なメソッド名であることも、パッケージプライベートメソッドおよび private メソッドの修飾されたメソッド名であることもあります。package-private メソッドと private メソッドには、型階層内で同じ名前を持つ複数のメソッド間で曖昧さをなくすために、修飾名が必要です。

    • isExternallyManagedInitMethod

      public boolean isExternallyManagedInitMethod(StringSE initMethod)
      指定されたメソッド名が外部管理の初期化メソッドを示しているかどうかを判別してください。

      付属の initMethod のフォーマットの詳細については、registerExternallyManagedInitMethod(java.lang.String) を参照してください。

    • getExternallyManagedInitMethods

      public SetSE<StringSE> getExternallyManagedInitMethods()
      外部で管理されているすべての初期化メソッドを (不変の Set として) 取得します。

      返されたセットの初期化メソッドの形式の詳細については、registerExternallyManagedInitMethod(java.lang.String) を参照してください。

      導入:
      5.3.11
    • resolveDestroyMethodIfNecessary

      public void resolveDestroyMethodIfNecessary()
      必要に応じて、推定された destroy メソッドを解決します。
      導入:
      6.0
    • registerExternallyManagedDestroyMethod

      public void registerExternallyManagedDestroyMethod(StringSE destroyMethod)
      外部で管理されている構成破棄メソッドを登録します。たとえば、JSR-250 の PreDestroyEE アノテーションが付けられたメソッド。

      提供される destroyMethod は、非プライベートメソッドの場合は単純なメソッド名private メソッドの場合は修飾メソッド名です。クラス階層内で同じ名前を持つ複数のプライベートメソッドを明確にするために、private メソッドには修飾名が必要です。

    • isExternallyManagedDestroyMethod

      public boolean isExternallyManagedDestroyMethod(StringSE destroyMethod)
      指定されたメソッド名が外部で管理されている破棄メソッドを示しているかどうかを判別してください。

      付属の destroyMethod のフォーマットの詳細については、registerExternallyManagedDestroyMethod(java.lang.String) を参照してください。

    • getExternallyManagedDestroyMethods

      public SetSE<StringSE> getExternallyManagedDestroyMethods()
      外部で管理されているすべての破棄メソッドを(不変のセットとして)取得します。

      返されたセットの破棄メソッドの形式の詳細については、registerExternallyManagedDestroyMethod(java.lang.String) を参照してください。

      導入:
      5.3.11
    • cloneBeanDefinition

      public RootBeanDefinition cloneBeanDefinition()
      クラスからコピーされた説明: AbstractBeanDefinition
      この Bean 定義を複製します。具象サブクラスによって実装されます。
      次で指定:
      クラス AbstractBeanDefinitioncloneBeanDefinition 
      戻り値:
      複製された Bean 定義オブジェクト
    • equals

      public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス AbstractBeanDefinitionequals 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス AbstractBeanDefinitiontoString