クラス SimpleJndiBeanFactory

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

public class SimpleJndiBeanFactory extends JndiLocatorSupport implements BeanFactory
Spring の BeanFactory インターフェースの単純な JNDI ベースの実装。Bean 定義の列挙をサポートしないため、ListableBeanFactory インターフェースを実装しません。

このファクトリは、指定された Bean 名を Jakarta EE アプリケーションの "java:comp/env/" 名前空間内の JNDI 名として解決します。取得したすべてのオブジェクトの解決された型をキャッシュし、オプションで共有可能なオブジェクトもキャッシュします (明示的に shareable resource としてマークされている場合)。

このファクトリの主な目的は、Spring の CommonAnnotationBeanPostProcessor と組み合わせて使用することであり、中間 Bean 定義のない JNDI オブジェクトとして @Resource アノテーションを解決するために "resourceFactory" として構成されます。もちろん、特に BeanFactory スタイルの型チェックが必要な場合は、同様のルックアップシナリオにも使用できます。

導入:
2.5
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • SimpleJndiBeanFactory

      public SimpleJndiBeanFactory()
  • メソッドの詳細

    • addShareableResource

      public void addShareableResource(StringSE shareableResource)
      このファクトリが取得後にキャッシュできる、共有可能な JNDI リソースの名前を追加します。
      パラメーター:
      shareableResource - JNDI 名 (通常は "java:comp/env/" 名前空間内)
    • setShareableResources

      public void setShareableResources(StringSE... shareableResources)
      このファクトリが取得後にキャッシュできる、共有可能な JNDI リソースの名前のリストを設定します。
      パラメーター:
      shareableResources - JNDI 名 (通常は "java:comp/env/" 名前空間内)
    • 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, @Nullable ObjectSE... args) throws BeansException
      インターフェースからコピーされた説明: BeanFactory
      指定された Bean のインスタンス(共有または独立)を返します。

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

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

      public <T> T getBean(ClassSE<T> requiredType) throws BeansException
      インターフェースからコピーされた説明: BeanFactory
      指定されたオブジェクト型が存在する場合、一意に一致する Bean インスタンスを返します。

      このメソッドは、ListableBeanFactory の型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactory または BeanFactoryUtils(あるいはその両方)を使用します。

      次で指定:
      インターフェース BeanFactorygetBean 
      パラメーター:
      requiredType - Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます
      戻り値:
      必要な型に一致する単一の Bean のインスタンス
      例外:
      NoSuchBeanDefinitionException - 指定された型の Bean が見つからなかった場合
      NoUniqueBeanDefinitionException - 指定された型の複数の Bean が見つかった場合
      BeansException - Bean を作成できなかった場合
      関連事項:
    • getBean

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

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

      このメソッドは、ListableBeanFactory の型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactory または BeanFactoryUtils(あるいはその両方)を使用します。

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

      public <T> ObjectProvider<T> getBeanProvider(ClassSE<T> requiredType)
      インターフェースからコピーされた説明: BeanFactory
      指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。

      ジェネリクス型を照合するには、BeanFactory.getBeanProvider(ResolvableType) を検討してください。

      次で指定:
      インターフェース BeanFactorygetBeanProvider 
      パラメーター:
      requiredType - Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます
      戻り値:
      対応するプロバイダーのハンドル
      関連事項:
    • getBeanProvider

      public <T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType)
      インターフェースからコピーされた説明: BeanFactory
      指定された Bean のプロバイダーを返します。これにより、可用性と一意性のオプションを含む、インスタンスの遅延オンデマンド取得が可能になります。このバリアントでは、メソッド / コンストラクターパラメーターでジェネリクス型宣言を使用するリフレクションインジェクションポイントと同様に、一致するジェネリクス型を指定できます。

      リフレクティブインジェクションポイントとは対照的に、ここでは Bean のコレクションはサポートされていないことに注意してください。特定の型に一致する Bean のリストをプログラムで取得するには、ここで引数として実際の Bean 型を指定し、その後 ObjectProvider.orderedStream() またはその遅延ストリーミング / 反復オプションを使用します。

      また、ジェネリクスのマッチングは、Java の割り当てルールに従って、ここでは厳密です。チェックされていないセマンティクスによる緩やかなフォールバックマッチング ('unchecked' Java コンパイラーの警告と同様) の場合、このバリアントで完全なジェネリクスマッチが available にない場合は、2 番目のステップとして生の型で BeanFactory.getBeanProvider(Class) を呼び出すことを検討してください。

      次で指定:
      インターフェース BeanFactorygetBeanProvider 
      パラメーター:
      requiredType - 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

      public boolean isTypeMatch(StringSE name, @Nullable 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)
      インターフェースからコピーされた説明: BeanFactory
      存在する場合、指定された Bean 名のエイリアスを返します。

      これらのエイリアスはすべて、BeanFactory.getBean(java.lang.String) 呼び出しで使用される場合、同じ Bean を指します。

      指定された名前がエイリアスの場合、対応する元の Bean 名と他のエイリアス(存在する場合)が返され、元の Bean 名が配列の最初の要素になります。

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

      次で指定:
      インターフェース BeanFactorygetAliases 
      パラメーター:
      name - エイリアスをチェックする Bean 名
      戻り値:
      エイリアス、または存在しない場合は空の配列
      関連事項: