クラス SimpleJndiBeanFactory
- 実装されているすべてのインターフェース:
BeanFactory
BeanFactory インターフェースの単純な JNDI ベースの実装。Bean 定義の列挙をサポートしないため、ListableBeanFactory インターフェースを実装しません。 このファクトリは、指定された Bean 名を Jakarta EE アプリケーションの "java:comp/env/" 名前空間内の JNDI 名として解決します。取得したすべてのオブジェクトの解決された型をキャッシュし、オプションで共有可能なオブジェクトもキャッシュします (明示的に shareable resource としてマークされている場合)。
このファクトリの主な目的は、中間の Bean 定義なしで @Resource アノテーションを JNDI オブジェクトとして解決するために "resourceFactory" として構成された Spring の CommonAnnotationBeanPostProcessor と組み合わせて使用することです。もちろん、BeanFactory スタイルの型チェックが必要な場合など、同様の検索シナリオにも使用できます。
- 導入:
- 2.5
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドのサマリー
クラス org.springframework.jndi.JndiLocatorSupport から継承されたフィールド
CONTAINER_PREFIXクラス org.springframework.jndi.JndiAccessor から継承されたフィールド
loggerインターフェース org.springframework.beans.factory.BeanFactory から継承されたフィールド
FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHARコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidaddShareableResource(StringSE shareableResource) このファクトリが取得後にキャッシュできる、共有可能な JNDI リソースの名前を追加します。booleancontainsBean(StringSE name) この Bean ファクトリには、指定された名前の Bean 定義または外部登録されたシングルトンインスタンスが含まれているか判定します。StringSE[]getAliases(StringSE name) 存在する場合、指定された Bean 名のエイリアスを返します。<T> T指定されたオブジェクト型が存在する場合、一意に一致する Bean インスタンスを返します。<T> T指定された Bean のインスタンス(共有または独立)を返します。指定された Bean のインスタンス(共有または独立)を返します。<T> T指定された Bean のインスタンス(共有または独立)を返します。指定された Bean のインスタンス(共有または独立)を返します。<T> ObjectProvider<T>getBeanProvider(ClassSE<T> requiredType) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。<T> ObjectProvider<T>getBeanProvider(ResolvableType requiredType) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。ClassSE<?>指定された名前の Bean の型を判別します。ClassSE<?>指定された名前の Bean の型を判別します。booleanisPrototype(StringSE name) この Bean はプロトタイプですか? つまり、BeanFactory.getBean(java.lang.String)は常に独立したインスタンスを返しますか?booleanisSingleton(StringSE name) この Bean は共有シングルトンですか? つまり、BeanFactory.getBean(java.lang.String)は常に同じインスタンスを返しますか?booleanisTypeMatch(StringSE name, ClassSE<?> typeToMatch) 指定された名前の Bean が指定された型と一致するかどうかを確認します。booleanisTypeMatch(StringSE name, ResolvableType typeToMatch) 指定された名前の Bean が指定された型と一致するかどうかを確認します。voidsetShareableResources(StringSE... shareableResources) このファクトリが取得後にキャッシュできる、共有可能な JNDI リソースの名前のリストを設定します。クラス org.springframework.jndi.JndiLocatorSupport から継承されたメソッド
convertJndiName, isResourceRef, lookup, lookup, setResourceRefクラス org.springframework.jndi.JndiAccessor から継承されたメソッド
getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate
コンストラクターの詳細
SimpleJndiBeanFactory
public SimpleJndiBeanFactory()
メソッドの詳細
getBean
インターフェースからコピーされた説明:BeanFactory指定された Bean のインスタンス(共有または独立)を返します。この方法では、Spring BeanFactory をシングルトンまたはプロトタイプの設計パターンの代わりとして使用できます。シングルトン Bean の場合、呼び出し元は返されたオブジェクトへの参照を保持できます。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのgetBean - パラメーター:
name- 取得する Bean の名前- 戻り値:
- Bean のインスタンス。戻り値が
nullになることはありませんが、ファクトリメソッドから返されたnullのスタブになる可能性があり、equals(null)を介してチェックされることに注意してください。オプションの依存関係を解決するには、BeanFactory.getBeanProvider(Class)の使用を検討してください。 - 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean がない場合BeansException- Bean を取得できなかった場合
getBean
インターフェースからコピーされた説明:BeanFactory指定された Bean のインスタンス(共有または独立)を返します。BeanFactory.getBean(String)と同じように動作しますが、Bean が必要な型でない場合は BeanNotOfRequiredTypeException をスローすることにより、型安全の基準を提供します。これは、BeanFactory.getBean(String)で発生する可能性があるように、結果を正しくキャストすると ClassCastException がスローされないことを意味します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのgetBean - パラメーター:
name- 取得する Bean の名前requiredType- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます- 戻り値:
- Bean のインスタンス。戻り値が
nullになることはないことに注意してください。リクエストされた Bean に対して解決されたファクトリメソッドからのnullのスタブの場合、NullBean スタブに対するBeanNotOfRequiredTypeExceptionが発生します。オプションの依存関係を解決するには、BeanFactory.getBeanProvider(Class)の使用を検討してください。 - 例外:
NoSuchBeanDefinitionException- そのような Bean 定義がない場合BeanNotOfRequiredTypeException- Bean が必要な型でない場合BeansException- Bean を作成できなかった場合
getBean
インターフェースからコピーされた説明:BeanFactory指定された Bean のインスタンス(共有または独立)を返します。Bean 定義で指定されたデフォルト引数 (存在する場合) をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できるようにします。指定された引数は、宣言されたパラメーターの順序で特定の候補コンストラクター / ファクトリメソッドと一致する必要があることに注意してください。
- 次で指定:
- インターフェース
BeanFactoryのgetBean - パラメーター:
name- 取得する Bean の名前args- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)- 戻り値:
- Bean のインスタンス
- 例外:
NoSuchBeanDefinitionException- そのような Bean 定義がない場合BeanDefinitionStoreException- 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合BeansException- Bean を作成できなかった場合
getBean
インターフェースからコピーされた説明:BeanFactory指定されたオブジェクト型が存在する場合、一意に一致する Bean インスタンスを返します。このメソッドは、
ListableBeanFactoryの型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactoryまたはBeanFactoryUtils(あるいはその両方)を使用します。- 次で指定:
- インターフェース
BeanFactoryのgetBean - パラメーター:
requiredType- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます- 戻り値:
- 必要な型に一致する単一の Bean のインスタンス
- 例外:
NoSuchBeanDefinitionException- 指定された型の Bean が見つからなかった場合NoUniqueBeanDefinitionException- 指定された型の複数の Bean が見つかった場合BeansException- Bean を作成できなかった場合- 関連事項:
getBean
インターフェースからコピーされた説明:BeanFactory指定された Bean のインスタンス(共有または独立)を返します。Bean 定義で指定されたデフォルト引数 (存在する場合) をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できるようにします。指定された引数は、宣言されたパラメーターの順序で特定の候補コンストラクター / ファクトリメソッドと一致する必要があることに注意してください。
このメソッドは、
ListableBeanFactoryの型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactoryまたはBeanFactoryUtils(あるいはその両方)を使用します。- 次で指定:
- インターフェース
BeanFactoryのgetBean - パラメーター:
requiredType- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができますargs- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)- 戻り値:
- Bean のインスタンス
- 例外:
NoSuchBeanDefinitionException- そのような Bean 定義がない場合BeanDefinitionStoreException- 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合BeansException- Bean を作成できなかった場合
getBeanProvider
インターフェースからコピーされた説明:BeanFactory指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。ジェネリクス型を照合するには、
BeanFactory.getBeanProvider(ResolvableType)を検討してください。- 次で指定:
- インターフェース
BeanFactoryのgetBeanProvider - パラメーター:
requiredType- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます- 戻り値:
- 対応するプロバイダーのハンドル
- 関連事項:
getBeanProvider
インターフェースからコピーされた説明:BeanFactory指定された Bean のプロバイダーを返します。これにより、可用性と一意性のオプションを含む、インスタンスの遅延オンデマンド取得が可能になります。このバリアントでは、メソッド / コンストラクターパラメーターでジェネリクス型宣言を使用するリフレクションインジェクションポイントと同様に、一致するジェネリクス型を指定できます。リフレクティブインジェクションポイントとは対照的に、ここでは Bean のコレクションはサポートされていないことに注意してください。特定の型に一致する Bean のリストをプログラムで取得するには、ここで引数として実際の Bean 型を指定し、その後
ObjectProvider.orderedStream()またはその遅延ストリーミング / 反復オプションを使用します。また、ジェネリクスのマッチングは、Java の割り当てルールに従って、ここでは厳密です。チェックされていないセマンティクスによる緩やかなフォールバックマッチング ('unchecked' Java コンパイラーの警告と同様) の場合、このバリアントで完全なジェネリクスマッチが
availableにない場合は、2 番目のステップとして生の型でBeanFactory.getBeanProvider(Class)を呼び出すことを検討してください。- 次で指定:
- インターフェース
BeanFactoryのgetBeanProvider - パラメーター:
requiredType- Bean が一致する必要があると入力します。ジェネリクス型宣言にすることができます- 戻り値:
- 対応するプロバイダーのハンドル
- 関連事項:
containsBean
インターフェースからコピーされた説明:BeanFactoryこの Bean ファクトリには、指定された名前の Bean 定義または外部登録されたシングルトンインスタンスが含まれているか判定します。指定された名前がエイリアスの場合、対応する正規の Bean 名に変換されます。
このファクトリが階層的である場合、このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに問い合わせます。
指定された名前に一致する Bean 定義またはシングルトンインスタンスが見つかった場合、このメソッドは、名前付き Bean 定義がスコープ内で具体的または抽象的、遅延または先行であるかどうかにかかわらず、
trueを返します。このメソッドからのtrue戻り値は、必ずしもBeanFactory.getBean(java.lang.String)が同じ名前のインスタンスを取得できることを示しているわけではないことに注意してください。- 次で指定:
- インターフェース
BeanFactoryのcontainsBean - パラメーター:
name- 照会する Bean の名前- 戻り値:
- 指定された名前の Bean が存在するかどうか
isSingleton
インターフェースからコピーされた説明:BeanFactoryこの Bean は共有シングルトンですか? つまり、BeanFactory.getBean(java.lang.String)は常に同じインスタンスを返しますか?メモ:
falseを返すこのメソッドは、独立したインスタンスを明確に示していません。これは、スコープが設定された Bean にも対応している可能性がある非シングルトンインスタンスを示します。BeanFactory.isPrototype(java.lang.String)操作を使用して、独立したインスタンスを明示的にチェックします。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのisSingleton - パラメーター:
name- 照会する Bean の名前- 戻り値:
- この Bean がシングルトンインスタンスに対応するかどうか
- 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean がない場合- 関連事項:
isPrototype
インターフェースからコピーされた説明:BeanFactoryこの Bean はプロトタイプですか? つまり、BeanFactory.getBean(java.lang.String)は常に独立したインスタンスを返しますか?メモ:
falseを返すこのメソッドは、シングルトンオブジェクトを明確に示していません。これは独立したインスタンスを示し、スコープ付き Bean にも対応する場合があります。BeanFactory.isSingleton(java.lang.String)操作を使用して、共有シングルトンインスタンスを明示的に確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのisPrototype - パラメーター:
name- 照会する Bean の名前- 戻り値:
- この Bean が常に独立したインスタンスを配信するかどうか
- 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean がない場合- 関連事項:
isTypeMatch
public boolean isTypeMatch(StringSE name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException インターフェースからコピーされた説明:BeanFactory指定された名前の Bean が指定された型と一致するかどうかを確認します。より具体的には、指定された名前のBeanFactory.getBean(java.lang.String)呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのisTypeMatch - パラメーター:
name- 照会する Bean の名前typeToMatch- 照合する型 (ResolvableTypeとして)- 戻り値:
- Bean 型が一致する場合は
true、一致しないかまだ判別できない場合はfalse - 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean がない場合- 関連事項:
isTypeMatch
public boolean isTypeMatch(StringSE name, @Nullable ClassSE<?> typeToMatch) throws NoSuchBeanDefinitionException インターフェースからコピーされた説明:BeanFactory指定された名前の Bean が指定された型と一致するかどうかを確認します。より具体的には、指定された名前のBeanFactory.getBean(java.lang.String)呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのisTypeMatch - パラメーター:
name- 照会する Bean の名前typeToMatch- 照合する型 (Classとして)- 戻り値:
- Bean 型が一致する場合は
true、一致しないかまだ判別できない場合はfalse - 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean がない場合- 関連事項:
getType
インターフェースからコピーされた説明:BeanFactory指定された名前の Bean の型を判別します。具体的には、指定された名前に対してBeanFactory.getBean(java.lang.String)が返すオブジェクトの型を決定します。FactoryBeanの場合は、FactoryBean.getObjectType()によって公開されている、FactoryBean が作成するオブジェクトの型を返します。これにより、以前に初期化されていないFactoryBean(BeanFactory.getType(String, boolean)を参照)が初期化される可能性があります。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのgetType - パラメーター:
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 が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのgetType - パラメーター:
name- 照会する Bean の名前allowFactoryBeanInit-FactoryBeanがオブジェクト型を判別する目的でのみ初期化されるかどうか- 戻り値:
- Bean の型、または判別できない場合は
null - 例外:
NoSuchBeanDefinitionException- 指定された名前の Bean がない場合- 関連事項:
getAliases
インターフェースからコピーされた説明:BeanFactory存在する場合、指定された Bean 名のエイリアスを返します。これらのエイリアスはすべて、
BeanFactory.getBean(java.lang.String)呼び出しで使用される場合、同じ Bean を指します。指定された名前がエイリアスの場合、対応する元の Bean 名と他のエイリアス(存在する場合)が返され、元の Bean 名が配列の最初の要素になります。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
- 次で指定:
- インターフェース
BeanFactoryのgetAliases - パラメーター:
name- エイリアスをチェックする Bean 名- 戻り値:
- エイリアス、または存在しない場合は空の配列
- 関連事項: