クラス AbstractBeanFactory

実装されたすべてのインターフェース:
BeanFactoryConfigurableBeanFactorySingletonBeanRegistryHierarchicalBeanFactoryAliasRegistry
既知の直属サブクラス
AbstractAutowireCapableBeanFactory

public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport implements ConfigurableBeanFactory
ConfigurableBeanFactory SPI のすべての機能を提供する、BeanFactory 実装の抽象基本クラス。リスト可能な Bean ファクトリを想定していません。一部のバックエンドリソースから Bean 定義を取得する Bean ファクトリ実装の基本クラスとしても使用できます(Bean 定義へのアクセスは負荷の高い操作です)。

このクラスは、(その基本クラス DefaultSingletonBeanRegistry、シングルトン / プロトタイプ決定、FactoryBean 処理、エイリアス、子 Bean 定義の Bean 定義のマージ、Bean 破棄(DisposableBean インターフェース、カスタム破棄メソッド)を通じて、シングルトンキャッシュを提供します。さらに、Bean を管理できます。HierarchicalBeanFactory インターフェースの実装によるファクトリ階層(Bean が不明の場合は親に委譲)。

サブクラスによって実装される主なテンプレートメソッドは getBeanDefinition(java.lang.String) および createBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[]) であり、それぞれ特定の Bean 名の Bean 定義を取得し、特定の Bean 定義の Bean インスタンスを作成します。これらの操作のデフォルトの実装は、DefaultListableBeanFactory および AbstractAutowireCapableBeanFactory にあります。

導入:
2001 年 4 月 15 日
作成者:
Rod Johnson, Juergen Hoeller, Costin Leau, Chris Beams, Phillip Webb, Sam Brannen
関連事項:
  • コンストラクターの詳細

    • AbstractBeanFactory

      public AbstractBeanFactory()
      新しい AbstractBeanFactory を作成します。
    • AbstractBeanFactory

      public AbstractBeanFactory(@Nullable BeanFactory parentBeanFactory)
      指定された親を持つ新しい AbstractBeanFactory を作成します。
      パラメーター:
      parentBeanFactory - 親 Bean ファクトリ、または存在しない場合は null 
      関連事項:
  • メソッドの詳細

    • getBean

      public ObjectSE getBean(StringSE name) throws BeansException
      インターフェースからコピーされた説明: BeanFactory
      指定された Bean のインスタンス(共有または独立)を返します。

      この方法では、Spring BeanFactory をシングルトンまたはプロトタイプの設計パターンの代わりとして使用できます。シングルトン Bean の場合、呼び出し元は返されたオブジェクトへの参照を保持できます。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactorygetBean 
      パラメーター:
      name - 取得する Bean の名前
      戻り値:
      Bean のインスタンス。戻り値が null になることはありませんが、ファクトリメソッドから返された null のスタブになる可能性があり、equals(null) を介してチェックされることに注意してください。オプションの依存関係を解決するには、BeanFactory.getBeanProvider(Class) の使用を検討してください。
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      BeansException - Bean を取得できなかった場合
    • getBean

      public <T> T getBean(StringSE name, ClassSE<T> requiredType) throws BeansException
      インターフェースからコピーされた説明: BeanFactory
      指定された Bean のインスタンス(共有または独立)を返します。

      BeanFactory.getBean(String) と同じように動作しますが、Bean が必要な型でない場合は BeanNotOfRequiredTypeException をスローすることにより、型安全の基準を提供します。これは、BeanFactory.getBean(String) で発生する可能性があるように、結果を正しくキャストすると ClassCastException がスローされないことを意味します。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactorygetBean 
      パラメーター:
      name - 取得する Bean の名前
      requiredType - Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます
      戻り値:
      Bean のインスタンス。戻り値が null になることはないことに注意してください。リクエストされた Bean に対して解決されたファクトリメソッドからの null のスタブの場合、NullBean スタブに対する BeanNotOfRequiredTypeException が発生します。オプションの依存関係を解決するには、BeanFactory.getBeanProvider(Class) の使用を検討してください。
      例外:
      NoSuchBeanDefinitionException - そのような Bean 定義がない場合
      BeanNotOfRequiredTypeException - Bean が必要な型でない場合
      BeansException - Bean を作成できなかった場合
    • getBean

      public ObjectSE getBean(StringSE name, ObjectSE... args) throws BeansException
      インターフェースからコピーされた説明: BeanFactory
      指定された Bean のインスタンス(共有または独立)を返します。

      Bean 定義で指定されたデフォルト引数 (存在する場合) をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できるようにします。指定された引数は、宣言されたパラメーターの順序で特定の候補コンストラクター / ファクトリメソッドと一致する必要があることに注意してください。

      次で指定:
      インターフェース BeanFactorygetBean 
      パラメーター:
      name - 取得する Bean の名前
      args - 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)
      戻り値:
      Bean のインスタンス
      例外:
      NoSuchBeanDefinitionException - そのような Bean 定義がない場合
      BeanDefinitionStoreException - 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合
      BeansException - Bean を作成できなかった場合
    • getBean

      public <T> T getBean(StringSE name, @Nullable ClassSE<T> requiredType, @Nullable ObjectSE... args) throws BeansException
      指定された Bean のインスタンス(共有または独立)を返します。
      パラメーター:
      name - 取得する Bean の名前
      requiredType - 取得する Bean の必要な型
      args - 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)
      戻り値:
      Bean のインスタンス
      例外:
      BeansException - Bean を作成できなかった場合
    • doGetBean

      protected <T> T doGetBean(StringSE name, @Nullable ClassSE<T> requiredType, @Nullable ObjectSE[] args, boolean typeCheckOnly) throws BeansException
      指定された Bean のインスタンス(共有または独立)を返します。
      パラメーター:
      name - 取得する Bean の名前
      requiredType - 取得する Bean の必要な型
      args - 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)
      typeCheckOnly - インスタンスが実際の使用のためではなく、型チェックのために取得されるかどうか
      戻り値:
      Bean のインスタンス
      例外:
      BeansException - Bean を作成できなかった場合
    • containsBean

      public boolean containsBean(StringSE name)
      インターフェースからコピーされた説明: BeanFactory
      この Bean ファクトリには、指定された名前の Bean 定義または外部登録されたシングルトンインスタンスが含まれているか判定します。

      指定された名前がエイリアスの場合、対応する正規の Bean 名に変換されます。

      このファクトリが階層的である場合、このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに問い合わせます。

      指定された名前に一致する Bean 定義またはシングルトンインスタンスが見つかった場合、このメソッドは、名前付き Bean 定義がスコープ内で具体的または抽象的、遅延または先行であるかどうかにかかわらず、true を返します。このメソッドからの true 戻り値は、必ずしも BeanFactory.getBean(java.lang.String) が同じ名前のインスタンスを取得できることを示しているわけではないことに注意してください。

      次で指定:
      インターフェース BeanFactorycontainsBean 
      パラメーター:
      name - 照会する Bean の名前
      戻り値:
      指定された名前の Bean が存在するかどうか
    • isSingleton

      public boolean isSingleton(StringSE name) throws NoSuchBeanDefinitionException
      インターフェースからコピーされた説明: BeanFactory
      この Bean は共有シングルトンですか? つまり、BeanFactory.getBean(java.lang.String) は常に同じインスタンスを返しますか?

      メモ: false を返すこのメソッドは、独立したインスタンスを明確に示していません。これは、スコープが設定された Bean にも対応している可能性がある非シングルトンインスタンスを示します。BeanFactory.isPrototype(java.lang.String) 操作を使用して、独立したインスタンスを明示的にチェックします。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactoryisSingleton 
      パラメーター:
      name - 照会する Bean の名前
      戻り値:
      この Bean がシングルトンインスタンスに対応するかどうか
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      関連事項:
    • isPrototype

      public boolean isPrototype(StringSE name) throws NoSuchBeanDefinitionException
      インターフェースからコピーされた説明: BeanFactory
      この Bean はプロトタイプですか? つまり、BeanFactory.getBean(java.lang.String) は常に独立したインスタンスを返しますか?

      メモ: false を返すこのメソッドは、シングルトンオブジェクトを明確に示していません。これは独立したインスタンスを示し、スコープ付き Bean にも対応する場合があります。BeanFactory.isSingleton(java.lang.String) 操作を使用して、共有シングルトンインスタンスを明示的に確認します。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactoryisPrototype 
      パラメーター:
      name - 照会する Bean の名前
      戻り値:
      この Bean が常に独立したインスタンスを配信するかどうか
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      関連事項:
    • isTypeMatch

      public boolean isTypeMatch(StringSE name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException
      インターフェースからコピーされた説明: BeanFactory
      指定された名前の Bean が指定された型と一致するかどうかを確認します。より具体的には、指定された名前の BeanFactory.getBean(java.lang.String) 呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactoryisTypeMatch 
      パラメーター:
      name - 照会する Bean の名前
      typeToMatch - 照合する型 (ResolvableType として)
      戻り値:
      Bean 型が一致する場合は true、一致しないかまだ判別できない場合は false 
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      関連事項:
    • isTypeMatch

      protected boolean isTypeMatch(StringSE name, ResolvableType typeToMatch, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException
      isTypeMatch(String, ResolvableType) の内部拡張バリアント。指定された名前の Bean が指定された型と一致するかどうかをチェックします。追加の制約を適用して、Bean が早期に作成されないようにします。
      パラメーター:
      name - 照会する Bean の名前
      typeToMatch - 照合する型 (ResolvableType として)
      戻り値:
      Bean 型が一致する場合は true、一致しないかまだ判別できない場合は false 
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      導入:
      5.2
      関連事項:
    • isTypeMatch

      public boolean isTypeMatch(StringSE name, ClassSE<?> typeToMatch) throws NoSuchBeanDefinitionException
      インターフェースからコピーされた説明: BeanFactory
      指定された名前の Bean が指定された型と一致するかどうかを確認します。より具体的には、指定された名前の BeanFactory.getBean(java.lang.String) 呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactoryisTypeMatch 
      パラメーター:
      name - 照会する Bean の名前
      typeToMatch - 照合する型 (Class として)
      戻り値:
      Bean 型が一致する場合は true、一致しないかまだ判別できない場合は false 
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      関連事項:
    • getType

      @Nullable public ClassSE<?> getType(StringSE name) throws NoSuchBeanDefinitionException
      インターフェースからコピーされた説明: BeanFactory
      指定された名前の Bean の型を判別します。具体的には、指定された名前に対して BeanFactory.getBean(java.lang.String) が返すオブジェクトの型を決定します。

      FactoryBean の場合は、FactoryBean.getObjectType() によって公開されている、FactoryBean が作成するオブジェクトの型を返します。これにより、以前に初期化されていない FactoryBean (BeanFactory.getType(String, boolean) を参照)が初期化される可能性があります。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactorygetType 
      パラメーター:
      name - 照会する Bean の名前
      戻り値:
      Bean の型、または判別できない場合は null 
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      関連事項:
    • getType

      @Nullable public ClassSE<?> getType(StringSE name, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException
      インターフェースからコピーされた説明: BeanFactory
      指定された名前の Bean の型を判別します。具体的には、指定された名前に対して BeanFactory.getBean(java.lang.String) が返すオブジェクトの型を決定します。

      FactoryBean の場合は、FactoryBean.getObjectType() によって公開されている、FactoryBean が作成するオブジェクトの型を返します。allowFactoryBeanInit フラグによっては、初期の型情報が利用できない場合、以前に初期化されていない FactoryBean が初期化される可能性があります。

      エイリアスを対応する正規の Bean 名に変換します。

      このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。

      次で指定:
      インターフェース BeanFactorygetType 
      パラメーター:
      name - 照会する Bean の名前
      allowFactoryBeanInit - FactoryBean がオブジェクト型を判別する目的でのみ初期化されるかどうか
      戻り値:
      Bean の型、または判別できない場合は null 
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      関連事項:
    • getAliases

      public StringSE[] getAliases(StringSE name)
      インターフェースからコピーされた説明: AliasRegistry
      定義されている場合、指定された名前のエイリアスを返します。
      次で指定:
      インターフェース AliasRegistrygetAliases 
      次で指定:
      インターフェース BeanFactorygetAliases 
      オーバーライド:
      クラス SimpleAliasRegistrygetAliases 
      パラメーター:
      name - エイリアスをチェックする名前
      戻り値:
      エイリアス、または存在しない場合は空の配列
      関連事項:
    • getParentBeanFactory

      @Nullable public BeanFactory getParentBeanFactory()
      インターフェースからコピーされた説明: HierarchicalBeanFactory
      親 Bean ファクトリ、または存在しない場合は null を返します。
      次で指定:
      インターフェース HierarchicalBeanFactorygetParentBeanFactory 
    • containsLocalBean

      public boolean containsLocalBean(StringSE name)
      インターフェースからコピーされた説明: HierarchicalBeanFactory
      祖先コンテキストで定義された Bean を無視して、ローカル Bean ファクトリに、指定された名前の Bean が含まれているかどうかを返します。

      これは containsBean の代替であり、祖先の Bean ファクトリから指定された名前の Bean を無視します。

      次で指定:
      インターフェース HierarchicalBeanFactorycontainsLocalBean 
      パラメーター:
      name - 照会する Bean の名前
      戻り値:
      指定された名前の Bean がローカルファクトリで定義されているかどうか
      関連事項:
    • setParentBeanFactory

      public void setParentBeanFactory(@Nullable BeanFactory parentBeanFactory)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      この Bean ファクトリの親を設定します。

      親は変更できないことに注意してください。ファクトリのインスタンス化時に使用できない場合にのみ、コンストラクターの外部で設定する必要があります。

      次で指定:
      インターフェース ConfigurableBeanFactorysetParentBeanFactory 
      パラメーター:
      parentBeanFactory - 親 BeanFactory
      関連事項:
    • setBeanClassLoader

      public void setBeanClassLoader(@Nullable ClassLoaderSE beanClassLoader)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      Bean クラスのロードに使用するクラスローダーを設定します。デフォルトはスレッドコンテキストクラスローダーです。

      このクラスローダーは、解決された Bean クラスをまだ運んでいない Bean 定義にのみ適用されることに注意してください。これは、デフォルトの Spring 2.0 の場合です。Bean 定義は Bean クラス名のみを伝送し、ファクトリが Bean 定義を処理すると解決されます。

      次で指定:
      インターフェース ConfigurableBeanFactorysetBeanClassLoader 
      パラメーター:
      beanClassLoader - 使用するクラスローダー、またはデフォルトのクラスローダーを提案する null 
    • getBeanClassLoader

      @Nullable public ClassLoaderSE getBeanClassLoader()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      Bean クラスをロードするために、このファクトリのクラスローダーを返します(システム ClassLoader にもアクセスできない場合は、null のみ)。
      次で指定:
      インターフェース ConfigurableBeanFactorygetBeanClassLoader 
      関連事項:
    • setTempClassLoader

      public void setTempClassLoader(@Nullable ClassLoaderSE tempClassLoader)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      型マッチングの目的で使用する一時 ClassLoader を指定します。デフォルトは none で、標準の Bean ClassLoader を使用するだけです。

      一時的な ClassLoader は、実際の Bean クラスが可能な限り遅延して読み込まれるようにするために、通常、 読み込み時のウィービングが関係する場合に指定されます。BeanFactory がブートストラップフェーズを完了すると、一時的なローダーは削除されます。

      次で指定:
      インターフェース ConfigurableBeanFactorysetTempClassLoader 
    • getTempClassLoader

      @Nullable public ClassLoaderSE getTempClassLoader()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      一時的な ClassLoader を返し、型マッチングの目的で使用します(ある場合)。
      次で指定:
      インターフェース ConfigurableBeanFactorygetTempClassLoader 
    • setCacheBeanMetadata

      public void setCacheBeanMetadata(boolean cacheBeanMetadata)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定された Bean 定義(マージされた方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを設定します。デフォルトはオンです。

      このフラグをオフにすると、Bean 定義オブジェクト、特に Bean クラスのホットリフレッシュが有効になります。このフラグがオフの場合、Bean インスタンスを作成すると、Bean クラスローダーに新たに解決されたクラスのクエリが再実行されます。

      次で指定:
      インターフェース ConfigurableBeanFactorysetCacheBeanMetadata 
    • isCacheBeanMetadata

      public boolean isCacheBeanMetadata()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定された Bean 定義(解決された方法)や解決された Bean クラスなどの Bean メタデータをキャッシュするかどうかを返します。
      次で指定:
      インターフェース ConfigurableBeanFactoryisCacheBeanMetadata 
    • setBeanExpressionResolver

      public void setBeanExpressionResolver(@Nullable BeanExpressionResolver resolver)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      Bean 定義値の式の解決戦略を指定します。

      BeanFactory では、デフォルトでアクティブな式のサポートはありません。ApplicationContext は通常、ここで標準の式戦略を設定し、Unified EL 互換スタイルで "#{...}" 式をサポートします。

      次で指定:
      インターフェース ConfigurableBeanFactorysetBeanExpressionResolver 
    • getBeanExpressionResolver

      @Nullable public BeanExpressionResolver getBeanExpressionResolver()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      Bean 定義値の式の解決戦略を返します。
      次で指定:
      インターフェース ConfigurableBeanFactorygetBeanExpressionResolver 
    • setConversionService

      public void setConversionService(@Nullable ConversionService conversionService)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用する ConversionService を指定します。
      次で指定:
      インターフェース ConfigurableBeanFactorysetConversionService 
    • getConversionService

      @Nullable public ConversionService getConversionService()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      関連する ConversionService があれば、それを返します。
      次で指定:
      インターフェース ConfigurableBeanFactorygetConversionService 
    • addPropertyEditorRegistrar

      public void addPropertyEditorRegistrar(PropertyEditorRegistrar registrar)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      すべての Bean 作成プロセスに適用される PropertyEditorRegistrar を追加します。

      このようなレジストラは、新しい PropertyEditor インスタンスを作成し、Bean を作成するたびに新しい、指定されたレジストリに登録します。これにより、カスタムエディターで同期する必要がなくなります。ConfigurableBeanFactory.registerCustomEditor(java.lang.Class<?>, java.lang.Class<? extends java.beans.PropertyEditor>) の代わりにこのメソッドを使用するのが一般的に望ましいです。

      次で指定:
      インターフェース ConfigurableBeanFactoryaddPropertyEditorRegistrar 
      パラメーター:
      registrar - 登録する PropertyEditorRegistrar
    • getPropertyEditorRegistrars

      public SetSE<PropertyEditorRegistrar> getPropertyEditorRegistrars()
      PropertyEditorRegistrars のセットを返します。
    • registerCustomEditor

      public void registerCustomEditor(ClassSE<?> requiredType, ClassSE<? extends PropertyEditorSE> propertyEditorClass)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。提供時の構成中に呼び出されます。

      このメソッドは共有カスタムエディターインスタンスを登録することに注意してください。そのインスタンスへのアクセスは、スレッドセーフのために同期されます。カスタムエディターでの同期の必要性を回避するために、このメソッドの代わりに ConfigurableBeanFactory.addPropertyEditorRegistrar(org.springframework.beans.PropertyEditorRegistrar) を使用することが一般的に推奨されます。

      次で指定:
      インターフェース ConfigurableBeanFactoryregisterCustomEditor 
      パラメーター:
      requiredType - プロパティの型
      propertyEditorClass - 登録する PropertyEditorSE クラス
    • copyRegisteredEditorsTo

      public void copyRegisteredEditorsTo(PropertyEditorRegistry registry)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。
      次で指定:
      インターフェース ConfigurableBeanFactorycopyRegisteredEditorsTo 
      パラメーター:
      registry - 初期化する PropertyEditorRegistry
    • getCustomEditors

      public MapSE<ClassSE<?>,ClassSE<? extends PropertyEditorSE>> getCustomEditors()
      キーをクラス、値を PropertyEditor クラスとして、カスタムエディターのマップを返します。
    • setTypeConverter

      public void setTypeConverter(TypeConverter typeConverter)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      この BeanFactory が Bean プロパティ値、コンストラクター引数値などを変換するために使用するカスタム型コンバーターを設定します。

      これにより、デフォルトの PropertyEditor メカニズムがオーバーライドされるため、カスタムエディターやカスタムエディターレジストラーは無関係になります。

      次で指定:
      インターフェース ConfigurableBeanFactorysetTypeConverter 
      関連事項:
    • getCustomTypeConverter

      @Nullable protected TypeConverter getCustomTypeConverter()
      使用するカスタム TypeConverter を返します(ある場合)。
      戻り値:
      カスタム TypeConverter、または何も指定されていない場合は null 
    • getTypeConverter

      public TypeConverter getTypeConverter()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      この BeanFactory で使用されている型コンバーターを入手します。TypeConverters は通常スレッドセーフではないため、これは各呼び出しの新しいインスタンスになる可能性があります。

      デフォルトの PropertyEditor メカニズムがアクティブな場合、返される TypeConverter は、登録されているすべてのカスタムエディターを認識します。

      次で指定:
      インターフェース ConfigurableBeanFactorygetTypeConverter 
    • addEmbeddedValueResolver

      public void addEmbeddedValueResolver(StringValueResolver valueResolver)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      アノテーション属性などの埋め込み値の文字列リゾルバーを追加します。
      次で指定:
      インターフェース ConfigurableBeanFactoryaddEmbeddedValueResolver 
      パラメーター:
      valueResolver - 埋め込み値に適用する文字列リゾルバー
    • hasEmbeddedValueResolver

      public boolean hasEmbeddedValueResolver()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      埋め込み値リゾルバーがこの Bean ファクトリに登録されており、ConfigurableBeanFactory.resolveEmbeddedValue(String) を通じて適用されるかどうかを判別します。
      次で指定:
      インターフェース ConfigurableBeanFactoryhasEmbeddedValueResolver 
    • resolveEmbeddedValue

      @Nullable public StringSE resolveEmbeddedValue(@Nullable StringSE value)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定された埋め込み値を解決します。アノテーション属性。
      次で指定:
      インターフェース ConfigurableBeanFactoryresolveEmbeddedValue 
      パラメーター:
      value - 解決する値
      戻り値:
      解決された値 (元の値をそのまま使用できます)
    • addBeanPostProcessor

      public void addBeanPostProcessor(BeanPostProcessor beanPostProcessor)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      このファクトリによって作成された Bean に適用される新しい BeanPostProcessor を追加します。提供時の構成中に呼び出されます。

      メモ: ここで送信されたポストプロセッサーは、登録順に適用されます。Ordered インターフェースの実装を通じて表現された順序付けのセマンティクスは無視されます。自動検出されたポストプロセッサー(ApplicationContext の Bean など)は、プログラムで登録されたポストプロセッサーの後に常に適用されることに注意してください。

      次で指定:
      インターフェース ConfigurableBeanFactoryaddBeanPostProcessor 
      パラメーター:
      beanPostProcessor - 登録するポストプロセッサー
    • addBeanPostProcessors

      public void addBeanPostProcessors(CollectionSE<? extends BeanPostProcessor> beanPostProcessors)
      このファクトリによって作成された Bean に適用される新しい BeanPostProcessors を追加します。提供時に呼び出されます。
      導入:
      5.3
      関連事項:
    • getBeanPostProcessorCount

      public int getBeanPostProcessorCount()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      登録されている BeanPostProcessors の現在の数があれば返します。
      次で指定:
      インターフェース ConfigurableBeanFactorygetBeanPostProcessorCount 
    • getBeanPostProcessors

      public ListSE<BeanPostProcessor> getBeanPostProcessors()
      このファクトリで作成された Bean に適用される BeanPostProcessors のリストを返します。
    • hasInstantiationAwareBeanPostProcessors

      protected boolean hasInstantiationAwareBeanPostProcessors()
      このファクトリが、作成時にシングルトン Bean に適用される InstantiationAwareBeanPostProcessor を保持しているかどうかを返します。
      関連事項:
    • hasDestructionAwareBeanPostProcessors

      protected boolean hasDestructionAwareBeanPostProcessors()
      このファクトリが、シャットダウン時にシングルトン Bean に適用される DestructionAwareBeanPostProcessor を保持しているかどうかを返します。
      関連事項:
    • registerScope

      public void registerScope(StringSE scopeName, Scope scope)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定されたスコープの実装に裏付けられた、指定されたスコープを登録します。
      次で指定:
      インターフェース ConfigurableBeanFactoryregisterScope 
      パラメーター:
      scopeName - スコープ識別子
      scope - バッキングスコープの実装
    • getRegisteredScopeNames

      public StringSE[] getRegisteredScopeNames()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      現在登録されているすべてのスコープの名前を返します。

      これは、明示的に登録されたスコープの名前のみを返します。"singleton" や "prototype" などの組み込みスコープは公開されません。

      次で指定:
      インターフェース ConfigurableBeanFactorygetRegisteredScopeNames 
      戻り値:
      スコープ名の配列、ない場合は空の配列
      関連事項:
    • getRegisteredScope

      @Nullable public Scope getRegisteredScope(StringSE scopeName)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定されたスコープ名のスコープ実装があれば、それを返します。

      これは明示的に登録されたスコープのみを返します。"singleton" や "prototype" などの組み込みスコープは公開されません。

      次で指定:
      インターフェース ConfigurableBeanFactorygetRegisteredScope 
      パラメーター:
      scopeName - スコープの名前
      戻り値:
      登録されたスコープ実装、または null (存在しない場合)
      関連事項:
    • setApplicationStartup

      public void setApplicationStartup(ApplicationStartup applicationStartup)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      この Bean ファクトリの ApplicationStartup を設定します。

      これにより、アプリケーションコンテキストは、アプリケーションの起動時にメトリクスを記録できます。

      次で指定:
      インターフェース ConfigurableBeanFactorysetApplicationStartup 
      パラメーター:
      applicationStartup - 新しいアプリケーションのスタートアップ
    • getApplicationStartup

      public ApplicationStartup getApplicationStartup()
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      この Bean ファクトリの ApplicationStartup を return してください。
      次で指定:
      インターフェース ConfigurableBeanFactorygetApplicationStartup 
    • copyConfigurationFrom

      public void copyConfigurationFrom(ConfigurableBeanFactory otherFactory)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定された他のファクトリから関連するすべての構成をコピーします。

      BeanPostProcessors、スコープ、ファクトリ固有の内部設定だけでなく、すべての標準構成設定を含める必要があります。BeanDefinition オブジェクトや Bean 名のエイリアスなど、実際の Bean 定義のメタデータを含めないでください。

      次で指定:
      インターフェース ConfigurableBeanFactorycopyConfigurationFrom 
      パラメーター:
      otherFactory - コピー元のもう 1 つの BeanFactory
    • getMergedBeanDefinition

      public BeanDefinition getMergedBeanDefinition(StringSE name) throws BeansException
      指定された Bean 名の「マージされた」BeanDefinition を返します。必要に応じて、子 Bean 定義をその親とマージします。

      この getMergedBeanDefinition は、祖先の Bean 定義も考慮します。

      次で指定:
      インターフェース ConfigurableBeanFactorygetMergedBeanDefinition 
      パラメーター:
      name - マージされた定義を取得する Bean の名前 (エイリアスの可能性があります)
      戻り値:
      指定された Bean の(潜在的にマージされた)RootBeanDefinition
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      BeanDefinitionStoreException - 無効な Bean 定義の場合
      NoSuchBeanDefinitionException - 指定された名前の Bean 定義がない場合
      BeansException
    • isFactoryBean

      public boolean isFactoryBean(StringSE name) throws NoSuchBeanDefinitionException
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定された名前の Bean が FactoryBean であるかどうかを判別します。
      次で指定:
      インターフェース ConfigurableBeanFactoryisFactoryBean 
      パラメーター:
      name - チェックする Bean の名前
      戻り値:
      Bean が FactoryBean かどうか (false は、Bean は存在するが FactoryBean ではないことを意味します)
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
    • isActuallyInCreation

      public boolean isActuallyInCreation(StringSE beanName)
      オーバーライド:
      クラス DefaultSingletonBeanRegistryisActuallyInCreation 
    • isPrototypeCurrentlyInCreation

      protected boolean isPrototypeCurrentlyInCreation(StringSE beanName)
      指定されたプロトタイプ Bean が現在作成中(現在のスレッド内)かどうかを返します。
      パラメーター:
      beanName - Bean の名前
    • beforePrototypeCreation

      protected void beforePrototypeCreation(StringSE beanName)
      プロトタイプ作成前のコールバック。

      デフォルトの実装では、プロトタイプを現在作成中として登録します。

      パラメーター:
      beanName - 作成しようとしているプロトタイプの名前
      関連事項:
    • afterPrototypeCreation

      protected void afterPrototypeCreation(StringSE beanName)
      プロトタイプ作成後のコールバック。

      デフォルトの実装では、プロトタイプはもう作成されていません。

      パラメーター:
      beanName - 作成されたプロトタイプの名前
      関連事項:
    • destroyBean

      public void destroyBean(StringSE beanName, ObjectSE beanInstance)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      指定された Bean インスタンス(通常はこのファクトリから取得されたプロトタイプインスタンス)を、その Bean 定義に従って破棄します。

      破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。

      次で指定:
      インターフェース ConfigurableBeanFactorydestroyBean 
      パラメーター:
      beanName - Bean 定義の名前
      beanInstance - 破棄する Bean インスタンス
    • destroyBean

      protected void destroyBean(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd)
      指定された Bean 定義に従って、指定された Bean インスタンス(通常、このファクトリから取得されたプロトタイプインスタンス)を破棄します。
      パラメーター:
      beanName - Bean 定義の名前
      bean - 破棄する Bean インスタンス
      mbd - マージされた Bean 定義
    • destroyScopedBean

      public void destroyScopedBean(StringSE beanName)
      インターフェースからコピーされた説明: ConfigurableBeanFactory
      現在のターゲットスコープに指定されたスコープ付き Bean がある場合はそれを破棄します。

      破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。

      次で指定:
      インターフェース ConfigurableBeanFactorydestroyScopedBean 
      パラメーター:
      beanName - スコープ付き Bean の名前
    • transformedBeanName

      protected StringSE transformedBeanName(StringSE name)
      Bean 名を返し、必要に応じてファクトリ逆参照プレフィックスを取り除き、エイリアスを正規名に解決します。
      パラメーター:
      name - ユーザー指定の名前
      戻り値:
      変換された Bean 名
    • originalBeanName

      protected StringSE originalBeanName(StringSE name)
      ローカルで定義されたエイリアスを正規名に解決して、元の Bean 名を決定します。
      パラメーター:
      name - ユーザー指定の名前
      戻り値:
      元の Bean 名
    • initBeanWrapper

      protected void initBeanWrapper(BeanWrapper bw)
      このファクトリに登録されたカスタムエディターを使用して、指定された BeanWrapper を初期化します。Bean インスタンスを作成および移入する BeanWrappers で呼び出されます。

      デフォルトの実装は registerCustomEditors(org.springframework.beans.PropertyEditorRegistry) に委譲します。サブクラスでオーバーライドできます。

      パラメーター:
      bw - 初期化する BeanWrapper
    • registerCustomEditors

      protected void registerCustomEditors(PropertyEditorRegistry registry)
      この BeanFactory に登録されているカスタムエディターを使用して、指定された PropertyEditorRegistry を初期化します。

      Bean インスタンスを作成および設定する BeanWrappers、およびコンストラクター引数とファクトリメソッド型の変換に使用される SimpleTypeConverter で呼び出されます。

      パラメーター:
      registry - 初期化する PropertyEditorRegistry
    • getMergedLocalBeanDefinition

      protected RootBeanDefinition getMergedLocalBeanDefinition(StringSE beanName) throws BeansException
      指定された Bean が子 Bean 定義に対応する場合、親 Bean 定義をトラバースして、マージされた RootBeanDefinition を返します。
      パラメーター:
      beanName - マージされた定義を取得する Bean の名前
      戻り値:
      指定された Bean の(潜在的にマージされた)RootBeanDefinition
      例外:
      NoSuchBeanDefinitionException - 指定された名前の Bean がない場合
      BeanDefinitionStoreException - 無効な Bean 定義の場合
      BeansException
    • getMergedBeanDefinition

      protected RootBeanDefinition getMergedBeanDefinition(StringSE beanName, BeanDefinition bd) throws BeanDefinitionStoreException
      指定された Bean の定義が子 Bean 定義である場合、親とマージすることにより、指定された最上位 Bean の RootBeanDefinition を返します。
      パラメーター:
      beanName - Bean 定義の名前
      bd - 元の Bean 定義 (ルート / ChildBeanDefinition)
      戻り値:
      指定された Bean の(潜在的にマージされた)RootBeanDefinition
      例外:
      BeanDefinitionStoreException - 無効な Bean 定義の場合
    • getMergedBeanDefinition

      protected RootBeanDefinition getMergedBeanDefinition(StringSE beanName, BeanDefinition bd, @Nullable BeanDefinition containingBd) throws BeanDefinitionStoreException
      指定された Bean の定義が子 Bean 定義である場合、親とマージすることにより、指定された Bean の RootBeanDefinition を返します。
      パラメーター:
      beanName - Bean 定義の名前
      bd - 元の Bean 定義 (ルート / ChildBeanDefinition)
      containingBd - 内部 Bean の場合は包含 Bean 定義、トップレベル Bean の場合は null 
      戻り値:
      指定された Bean の(潜在的にマージされた)RootBeanDefinition
      例外:
      BeanDefinitionStoreException - 無効な Bean 定義の場合
    • checkMergedBeanDefinition

      protected void checkMergedBeanDefinition(RootBeanDefinition mbd, StringSE beanName, @Nullable ObjectSE[] args) throws BeanDefinitionStoreException
      マージされた Bean 定義を確認し、検証例外を潜在的にスローします。
      パラメーター:
      mbd - チェックするマージ済み Bean 定義
      beanName - Bean の名前
      args - Bean 作成の引数(存在する場合)
      例外:
      BeanDefinitionStoreException - 検証に失敗した場合
    • clearMergedBeanDefinition

      protected void clearMergedBeanDefinition(StringSE beanName)
      指定された Bean のマージされた Bean 定義を削除し、次のアクセスで再作成します。
      パラメーター:
      beanName - マージされた定義をクリアする Bean 名
    • clearMetadataCache

      public void clearMetadataCache()
      マージされた Bean 定義キャッシュをクリアして、完全なメタデータキャッシュにまだ適格と見なされていない Bean のエントリを削除します。

      通常、元の Bean 定義への変更後にトリガーされます。BeanFactoryPostProcessor を適用した後。この時点ですでに作成されている Bean のメタデータは保持されます。

      導入:
      4.2
    • resolveBeanClass

      @Nullable protected ClassSE<?> resolveBeanClass(RootBeanDefinition mbd, StringSE beanName, ClassSE<?>... typesToMatch) throws CannotLoadBeanClassException
      指定された Bean 定義の Bean クラスを解決し、Bean クラス名をクラス参照に解決し(必要に応じて)、さらに使用するために Bean 定義に解決されたクラスを保管します。
      パラメーター:
      mbd - クラスを決定するためのマージされた Bean 定義
      beanName - Bean の名前 (エラー処理のため)
      typesToMatch - 内部型マッチングの目的の場合に一致する型 (また、返された Class がアプリケーションコードに公開されないことを通知します)
      戻り値:
      解決された Bean クラス (または、存在しない場合は null )
      例外:
      CannotLoadBeanClassException - クラスの読み込みに失敗した場合
    • evaluateBeanDefinitionString

      @Nullable protected ObjectSE evaluateBeanDefinitionString(@Nullable StringSE value, @Nullable BeanDefinition beanDefinition)
      Bean 定義に含まれている特定のストリングを評価し、潜在的にそれを式として解決します。
      パラメーター:
      value - チェックする値
      beanDefinition - 値が由来する Bean 定義
      戻り値:
      解決された値
      関連事項:
    • predictBeanType

      @Nullable protected ClassSE<?> predictBeanType(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch)
      指定された Bean の(処理された Bean インスタンスの)最終的な Bean 型を予測します。getType(java.lang.String) および isTypeMatch(java.lang.String, org.springframework.core.ResolvableType) によって呼び出されます。FactoryBeans は未加工の Bean 型でのみ動作することになっているため、特に FactoryBeans を処理する必要はありません。

      この実装は、ファクトリメソッドと InstantiationAwareBeanPostProcessors を処理できないという点で単純化されています。標準 Bean の場合、Bean 型のみを正しく予測します。サブクラスでオーバーライドされ、より高度な型検出を適用します。

      パラメーター:
      beanName - Bean の名前
      mbd - 型を決定するマージされた Bean 定義
      typesToMatch - 内部型マッチングの目的の場合に一致する型 (また、返された Class がアプリケーションコードに公開されないことを通知します)
      戻り値:
      Bean の型、または予測できない場合は null 
    • isFactoryBean

      protected boolean isFactoryBean(StringSE beanName, RootBeanDefinition mbd)
      指定された Bean が FactoryBean として定義されているかどうかを確認します。
      パラメーター:
      beanName - Bean の名前
      mbd - 対応する Bean 定義
    • getTypeForFactoryBean

      protected ResolvableType getTypeForFactoryBean(StringSE beanName, RootBeanDefinition mbd, boolean allowInit)
      指定された FactoryBean 定義の Bean 型を可能な限り決定します。ターゲット Bean に登録されているシングルトンインスタンスがない場合にのみ呼び出されます。allowInit が true であり、型を別の方法で決定できない場合、実装はターゲットファクトリ Bean をインスタンス化できます。それ以外の場合は、署名と関連するメタデータのイントロスペクトに制限されます。

      Bean 定義に FactoryBean.OBJECT_TYPE_ATTRIBUTE が設定されておらず、allowInit が true である場合、デフォルトの実装では、getBean を介して FactoryBean を作成し、その getObjectType メソッドを呼び出します。サブクラスでは、通常、ファクトリ Bean クラスのジェネリクスシグネチャーまたはそれを作成するファクトリメソッドをインスペクションすることにより、これを最適化することが推奨されます。サブクラスが FactoryBean をインスタンス化する場合、Bean を完全に設定せずに getObjectType メソッドを試すことを検討する必要があります。これが失敗した場合、この実装によって実行される完全な FactoryBean 作成をフォールバックとして使用する必要があります。

      パラメーター:
      beanName - Bean の名前
      mbd - Bean のマージされた Bean 定義
      allowInit - 型を別の方法で判別できない場合に FactoryBean の初期化が許可されている場合
      戻り値:
      決定可能な場合は Bean の型、それ以外の場合は ResolvableType.NONE
      導入:
      5.2
      関連事項:
    • markBeanAsCreated

      protected void markBeanAsCreated(StringSE beanName)
      指定した Bean をすでに作成済み(または作成中)としてマークします。

      これにより、Bean ファクトリは、指定された Bean を繰り返し作成するためにキャッシュを最適化できます。

      パラメーター:
      beanName - Bean の名前
    • cleanupAfterBeanCreationFailure

      protected void cleanupAfterBeanCreationFailure(StringSE beanName)
      Bean の作成に失敗した後、キャッシュされたメタデータの適切なクリーンアップを実行します。
      パラメーター:
      beanName - Bean の名前
    • isBeanEligibleForMetadataCaching

      protected boolean isBeanEligibleForMetadataCaching(StringSE beanName)
      指定された Bean が、その Bean 定義メタデータをキャッシュに入れる資格があるかどうかを判別します。
      パラメーター:
      beanName - Bean の名前
      戻り値:
      Bean のメタデータがこの時点ですでにキャッシュされている場合は、true 
    • removeSingletonIfCreatedForTypeCheckOnly

      protected boolean removeSingletonIfCreatedForTypeCheckOnly(StringSE beanName)
      指定された Bean 名のシングルトンインスタンス(存在する場合)を削除します。ただし、型チェック以外の目的で使用されていない場合のみです。
      パラメーター:
      beanName - Bean の名前
      戻り値:
      実際に削除された場合は true、それ以外の場合は false 
    • hasBeanCreationStarted

      protected boolean hasBeanCreationStarted()
      このファクトリの Bean 作成フェーズがすでに開始されているかどうか、つまり、いずれかの Bean がその間に作成済みとしてマークされているかどうかを確認します。
      導入:
      4.2.2
      関連事項:
    • getObjectForBeanInstance

      protected ObjectSE getObjectForBeanInstance(ObjectSE beanInstance, StringSE name, StringSE beanName, @Nullable RootBeanDefinition mbd)
      指定された Bean インスタンスのオブジェクト、Bean インスタンス自体または FactoryBean の場合は作成されたオブジェクトを取得します。
      パラメーター:
      beanInstance - 共有 Bean インスタンス
      name - ファクトリ逆参照接頭辞を含む可能性がある名前
      beanName - 正規の Bean 名
      mbd - マージされた Bean 定義
      戻り値:
      Bean に公開するオブジェクト
    • isBeanNameInUse

      public boolean isBeanNameInUse(StringSE beanName)
      指定された Bean 名がこのファクトリ内ですでに使用されているかどうか、つまり、ローカル Bean またはエイリアスがこの名前で登録されているか、この名前で作成された内部 Bean があるかどうかを確認します。
      パラメーター:
      beanName - チェックする名前
    • requiresDestruction

      protected boolean requiresDestruction(ObjectSE bean, RootBeanDefinition mbd)
      シャットダウン時に指定の Bean を破棄する必要があるかどうかを判断します。

      デフォルトの実装では、DisposableBean インターフェースと、指定された destroy メソッドおよび登録された DestructionAwareBeanPostProcessors をチェックします。

      パラメーター:
      bean - チェックする Bean インスタンス
      mbd - 対応する Bean 定義
      関連事項:
    • registerDisposableBeanIfNecessary

      protected void registerDisposableBeanIfNecessary(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd)
      指定された Bean をこのファクトリの使い捨て Bean のリストに追加し、その DisposableBean インターフェースおよび / またはファクトリシャットダウン時に呼び出される指定された destroy メソッドを登録します(該当する場合)。シングルトンにのみ適用されます。
      パラメーター:
      beanName - Bean の名前
      bean - Bean インスタンス
      mbd - Bean の Bean 定義
      関連事項:
    • containsBeanDefinition

      protected abstract boolean containsBeanDefinition(StringSE beanName)
      この Bean ファクトリに、指定された名前の Bean 定義が含まれているかどうかを確認します。このファクトリが参加する可能性のある階層は考慮されません。キャッシュされたシングルトンインスタンスが見つからない場合、containsBean によって呼び出されます。

      具体的な Bean ファクトリ実装の性質によっては、この操作は(たとえば、外部レジストリでのディレクトリルックアップのため)コストがかかる場合があります。ただし、リスト可能な Bean ファクトリの場合、これは通常、ローカルハッシュルックアップに相当します。操作はパブリックインターフェースの一部です。この場合、同じ実装がこのテンプレートメソッドとパブリックインターフェースメソッドの両方に使用できます。

      パラメーター:
      beanName - 検索する Bean の名前
      戻り値:
      この Bean ファクトリに、指定された名前の Bean 定義が含まれている場合
      関連事項:
    • getBeanDefinition

      protected abstract BeanDefinition getBeanDefinition(StringSE beanName) throws BeansException
      指定された Bean 名の Bean 定義を返します。このメソッドは Bean 定義のメタデータが必要になるたびにこのクラスによって呼び出されるため、サブクラスは通常キャッシュを実装する必要があります。

      具体的な Bean ファクトリ実装の性質によっては、この操作は(たとえば、外部レジストリでのディレクトリルックアップのため)コストがかかる場合があります。ただし、リスト可能な Bean ファクトリの場合、これは通常、ローカルハッシュルックアップに相当します。操作はパブリックインターフェースの一部です。この場合、同じ実装がこのテンプレートメソッドとパブリックインターフェースメソッドの両方に使用できます。

      パラメーター:
      beanName - 定義を検索する Bean の名前
      戻り値:
      このプロトタイプ名の BeanDefinition (非 null)
      例外:
      NoSuchBeanDefinitionException - Bean 定義を解決できない場合
      BeansException - エラーの場合
      関連事項:
    • createBean

      protected abstract ObjectSE createBean(StringSE beanName, RootBeanDefinition mbd, @Nullable ObjectSE[] args) throws BeanCreationException
      指定されたマージ済み Bean 定義(および引数)の Bean インスタンスを作成します。子定義の場合、Bean 定義はすでに親定義とマージされています。

      すべての Bean 検索メソッドは、実際の Bean 作成のためにこのメソッドに委譲します。

      パラメーター:
      beanName - Bean の名前
      mbd - Bean のマージされた Bean 定義
      args - コンストラクターまたはファクトリメソッドの呼び出しに使用する明示的な引数
      戻り値:
      Bean の新しいインスタンス
      例外:
      BeanCreationException - Bean を作成できなかった場合