public interface SingletonBeanRegistry
BeanFactory
実装によって実装できます。ConfigurableBeanFactory
インターフェースは、このインターフェースを継承します。
ConfigurableBeanFactory
, DefaultSingletonBeanRegistry
, AbstractBeanFactory
修飾子と型 | メソッドと説明 |
---|---|
boolean | containsSingleton(StringSE beanName) このレジストリに、指定された名前のシングルトンインスタンスが含まれているかどうかを確認します。 |
ObjectSE | getSingleton(StringSE beanName) 指定された名前で登録された(生の)シングルトンオブジェクトを返します。 |
int | getSingletonCount() このレジストリに登録されているシングルトン Bean の数を返します。 |
ObjectSE | getSingletonMutex() このレジストリで使用されるシングルトンミューテックスを返します(外部のコラボレーター向け)。 |
StringSE[] | getSingletonNames() このレジストリに登録されているシングルトン Bean の名前を返します。 |
void | registerSingleton(StringSE beanName, ObjectSE singletonObject) 指定された既存のオブジェクトを、指定された Bean 名で、Bean レジストリにシングルトンとして登録します。 |
void registerSingleton(StringSE beanName, ObjectSE singletonObject)
与えられたインスタンスは完全に初期化されることになっています。レジストリは初期化コールバックを実行しません(特に、InitializingBean の afterPropertiesSet
メソッドを呼び出しません)。指定されたインスタンスは、(DisposableBean の destroy
メソッドのような)破棄コールバックも受け取りません。
完全な BeanFactory 内で実行する場合: Bean が初期化および / または破棄コールバックを受け取ることになっている場合、既存のインスタンスの代わりに Bean 定義を登録します。
通常、レジストリ設定中に呼び出されますが、シングルトンのランタイム登録にも使用できます。結果として、レジストリ実装はシングルトンアクセスを同期する必要があります。BeanFactory のシングルトンの遅延初期化をサポートする場合、これを行う必要があります。
beanName
- Bean の名前 singletonObject
- 既存のシングルトンオブジェクト InitializingBean.afterPropertiesSet()
, DisposableBean.destroy()
, BeanDefinitionRegistry.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition)
@Nullable ObjectSE getSingleton(StringSE beanName)
すでにインスタンス化されているシングルトンのみをチェックします。まだインスタンス化されていないシングルトン Bean 定義のオブジェクトを返しません。
このメソッドの主な目的は、手動で登録されたシングルトンにアクセスすることです(registerSingleton(java.lang.String, java.lang.Object)
を参照)。また、すでに作成されている Bean 定義によって定義されたシングルトンにそのままのメソッドでアクセスするためにも使用できます。
注意 : この検索方法は、FactoryBean のプレフィックスまたはエイリアスを認識しません。シングルトンインスタンスを取得する前に、最初に正規の Bean 名を解決する必要があります。
beanName
- 検索する Bean の名前 null
ConfigurableListableBeanFactory.getBeanDefinition(java.lang.String)
boolean containsSingleton(StringSE beanName)
すでにインスタンス化されているシングルトンのみをチェックします。まだインスタンス化されていないシングルトン Bean 定義の true
を返しません。
このメソッドの主な目的は、手動で登録されたシングルトンをチェックすることです(registerSingleton(java.lang.String, java.lang.Object)
を参照)。Bean 定義で定義されたシングルトンがすでに作成されているかどうかを確認するためにも使用できます。
Bean ファクトリに特定の名前の Bean 定義が含まれているかどうかを確認するには、ListableBeanFactory の containsBeanDefinition
を使用します。containsBeanDefinition
と containsSingleton
の両方を呼び出すと、特定の Bean ファクトリに、指定された名前のローカル Bean インスタンスが含まれているかどうかがわかります。
BeanFactory の containsBean
を使用して、ファクトリが特定の名前の Bean を知っているかどうか(手動でシングルトンインスタンスを登録したか、Bean 定義によって作成されたか)を確認し、祖先ファクトリもチェックします。
注意 : この検索方法は、FactoryBean のプレフィックスまたはエイリアスを認識しません。シングルトンステータスを確認する前に、最初に正規の Bean 名を解決する必要があります。
beanName
- 検索する Bean の名前 registerSingleton(java.lang.String, java.lang.Object)
, ListableBeanFactory.containsBeanDefinition(java.lang.String)
, BeanFactory.containsBean(java.lang.String)
StringSE[] getSingletonNames()
すでにインスタンス化されているシングルトンのみをチェックします。まだインスタンス化されていないシングルトン Bean 定義の名前は返しません。
このメソッドの主な目的は、手動で登録されたシングルトンをチェックすることです(registerSingleton(java.lang.String, java.lang.Object)
を参照)。Bean 定義で定義されているシングルトンがすでに作成されているかどうかを確認するためにも使用できます。
null
)registerSingleton(java.lang.String, java.lang.Object)
, BeanDefinitionRegistry.getBeanDefinitionNames()
, ListableBeanFactory.getBeanDefinitionNames()
int getSingletonCount()
すでにインスタンス化されているシングルトンのみをチェックします。まだインスタンス化されていないシングルトン Bean 定義はカウントしません。
このメソッドの主な目的は、手動で登録されたシングルトンをチェックすることです(registerSingleton(java.lang.String, java.lang.Object)
を参照)。すでに作成されている Bean 定義によって定義されたシングルトンの数をカウントするためにも使用できます。
ObjectSE getSingletonMutex()
null
)