クラス DependencyDescriptor

java.lang.ObjectSE
org.springframework.beans.factory.InjectionPoint
org.springframework.beans.factory.config.DependencyDescriptor
実装されたすべてのインターフェース:
SerializableSE

public class DependencyDescriptor extends InjectionPoint implements SerializableSE
注入される特定の依存関係の記述子。コンストラクターパラメーター、メソッドパラメーター、フィールドをラップし、メタデータへの統一されたアクセスを可能にします。
導入:
2.5
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • DependencyDescriptor

      public DependencyDescriptor(MethodParameter methodParameter, boolean required)
      メソッドまたはコンストラクターパラメーターの新しい記述子を作成します。依存関係を「先行」と見なします。
      パラメーター:
      methodParameter - ラップする MethodParameter
      required - 依存関係が必要かどうか
    • DependencyDescriptor

      public DependencyDescriptor(MethodParameter methodParameter, boolean required, boolean eager)
      メソッドまたはコンストラクターパラメーターの新しい記述子を作成します。
      パラメーター:
      methodParameter - ラップする MethodParameter
      required - 依存関係が必要かどうか
      eager - 型マッチングのために潜在的なターゲット Bean を先行して解決するという意味で、この依存関係が「先行」であるかどうか
    • DependencyDescriptor

      public DependencyDescriptor(FieldSE field, boolean required)
      フィールドの新しい記述子を作成します。依存関係を「先行」と見なします。
      パラメーター:
      field - ラップするフィールド
      required - 依存関係が必要かどうか
    • DependencyDescriptor

      public DependencyDescriptor(FieldSE field, boolean required, boolean eager)
      フィールドの新しい記述子を作成します。
      パラメーター:
      field - ラップするフィールド
      required - 依存関係が必要かどうか
      eager - 型マッチングのために潜在的なターゲット Bean を先行して解決するという意味で、この依存関係が「先行」であるかどうか
    • DependencyDescriptor

      public DependencyDescriptor(DependencyDescriptor original)
      コピーコンストラクター。
      パラメーター:
      original - コピーを作成する元の記述子
  • メソッドの詳細

    • isRequired

      public boolean isRequired()
      この依存関係が必要かどうかを返します。

      オプションのセマンティクスは、Java 8 の OptionalSE、パラメーターレベルの Nullable アノテーションのバリアント(JSR-305 または FindBugs アノテーションセットなど)、または Kotlin の言語レベルの null 許容型宣言から派生します。

    • isEager

      public boolean isEager()
      型マッチングの潜在的なターゲット Bean を先行して解決するという意味で、この依存関係が「先行」であるかどうかを返します。
    • resolveNotUnique

      @Nullable public ObjectSE resolveNotUnique(ResolvableType type, MapSE<StringSE,ObjectSE> matchingBeans) throws BeansException
      指定された一意でないシナリオを解決します。デフォルトでは、NoUniqueBeanDefinitionException をスローします。

      サブクラスはこれをオーバーライドして、インスタンスの 1 つを選択するか、null を返すことで結果なしでオプトアウトすることができます。

      パラメーター:
      type - リクエストされた Bean 型
      matchingBeans - 指定された型に対して事前に選択されている Bean 名と対応する Bean インスタンスのマップ (すでに適用されている修飾子など)
      戻り値:
      続行する Bean インスタンス、またはなしの null 
      例外:
      BeansException - 一意ではないシナリオが致命的である場合
      導入:
      5.1
    • resolveShortcut

      @Nullable public ObjectSE resolveShortcut(BeanFactory beanFactory) throws BeansException
      特定のファクトリに対するこの依存関係のショートカットを解決します。たとえば、事前に解決された情報を考慮に入れます。

      解決アルゴリズムは、最初にこのメソッドを通じてショートカットの解決を試みてから、すべての Bean で通常の型マッチングアルゴリズムに進みます。サブクラスはこのメソッドをオーバーライドして、InjectionPoint 露出などを受信しながら、事前にキャッシュされた情報に基づいて解決パフォーマンスを向上させることができます。

      パラメーター:
      beanFactory - 関連するファクトリ
      戻り値:
      ショートカットの結果(存在する場合)、または null (存在しない場合)
      例外:
      BeansException - ショートカットを取得できなかった場合
      導入:
      4.3.1
    • resolveCandidate

      public ObjectSE resolveCandidate(StringSE beanName, ClassSE<?> requiredType, BeanFactory beanFactory) throws BeansException
      この依存関係のマッチングアルゴリズムの候補結果として、指定された Bean 名を、指定されたファクトリの Bean インスタンスに解決します。

      デフォルトの実装は BeanFactory.getBean(String) を呼び出します。サブクラスは、追加の引数またはその他のカスタマイズを提供する場合があります。

      パラメーター:
      beanName - この依存関係の候補結果としての Bean 名
      requiredType - Bean の予想される型 (アサーションとして)
      beanFactory - 関連するファクトリ
      戻り値:
      Bean インスタンス (非 null)
      例外:
      BeansException - Bean を取得できなかった場合
      導入:
      4.3.2
      関連事項:
    • increaseNestingLevel

      public void increaseNestingLevel()
      この記述子のネストレベルを上げます。
    • setContainingClass

      public void setContainingClass(ClassSE<?> containingClass)
      オプションで、この依存関係を含む具象クラスを設定します。これは、パラメーター / フィールドを宣言するクラスとは異なる場合があり、そのサブクラスである可能性があり、型変数を置き換える可能性があります。
      導入:
      4.0
    • getResolvableType

      public ResolvableType getResolvableType()
      ラップされたパラメーター / フィールドの ResolvableType オブジェクトを作成します。
      導入:
      4.0
    • getTypeDescriptor

      public TypeDescriptor getTypeDescriptor()
      ラップされたパラメーター / フィールドの TypeDescriptor オブジェクトを作成します。
      導入:
      5.1.4
    • fallbackMatchAllowed

      public boolean fallbackMatchAllowed()
      フォールバック一致が許可されるかどうかを返します。

      これはデフォルトでは false ですが、AutowireCandidateResolver にフォールバック一致も許容されることを提案するために、true を返すようにオーバーライドできます。

      導入:
      4.0
    • forFallbackMatch

      public DependencyDescriptor forFallbackMatch()
      フォールバック一致を目的としたこの記述子のバリアントを返します。
      導入:
      4.0
      関連事項:
    • initParameterNameDiscovery

      public void initParameterNameDiscovery(@Nullable ParameterNameDiscoverer parameterNameDiscoverer)
      基になるメソッドパラメーターがある場合は、パラメーター名の検出を初期化します。

      このメソッドは、実際にはこの時点でパラメーター名を取得しようとしません。アプリケーションが getDependencyName() を呼び出したときにディスカバリが発生するようにします(もしあれば)。

    • getDependencyName

      @Nullable public StringSE getDependencyName()
      ラップされたパラメーター / フィールドの名前を決定します。
      戻り値:
      宣言された名前 (解決できない場合は null である可能性があります)
    • getDependencyType

      public ClassSE<?> getDependencyType()
      ラップされたパラメーター / フィールドの宣言された(非ジェネリクス)型を決定します。
      戻り値:
      宣言された型 (非 null)
    • supportsLazyResolution

      public boolean supportsLazyResolution()
      この依存関係が遅延解決をサポートしているかどうかを判断します。例: 追加のプロキシを経由。デフォルトは true です。
      導入:
      6.1.2
      関連事項:
    • equals

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

      public int hashCode()
      オーバーライド:
      クラス InjectionPointhashCode