public class DependencyDescriptor extends InjectionPoint implements SerializableSE
field, methodParameter
コンストラクターと説明 |
---|
DependencyDescriptor(DependencyDescriptor original) コピーコンストラクター。 |
DependencyDescriptor(FieldSE field, boolean required) フィールドの新しい記述子を作成します。 |
DependencyDescriptor(FieldSE field, boolean required, boolean eager) フィールドの新しい記述子を作成します。 |
DependencyDescriptor(MethodParameter methodParameter, boolean required) メソッドまたはコンストラクターパラメーターの新しい記述子を作成します。 |
DependencyDescriptor(MethodParameter methodParameter, boolean required, boolean eager) メソッドまたはコンストラクターパラメーターの新しい記述子を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
boolean | equals(ObjectSE other) |
boolean | fallbackMatchAllowed() フォールバック一致が許可されるかどうかを返します。 |
DependencyDescriptor | forFallbackMatch() フォールバック一致を目的としたこの記述子のバリアントを返します。 |
StringSE | getDependencyName() ラップされたパラメーター / フィールドの名前を決定します。 |
ClassSE<?> | getDependencyType() ラップされたパラメーター / フィールドの宣言された(非ジェネリクス)型を決定します。 |
ResolvableType | getResolvableType() ラップされたパラメーター / フィールドの ResolvableType オブジェクトを作成します。 |
TypeDescriptor | getTypeDescriptor() ラップされたパラメーター / フィールドの TypeDescriptor オブジェクトを作成します。 |
int | hashCode() |
void | increaseNestingLevel() この記述子のネストレベルを上げます。 |
void | initParameterNameDiscovery(ParameterNameDiscoverer parameterNameDiscoverer) 基になるメソッドパラメーターがある場合は、パラメーター名の検出を初期化します。 |
boolean | isEager() 型マッチングの潜在的なターゲット Bean を先行して解決するという意味で、この依存関係が「先行」であるかどうかを返します。 |
boolean | isRequired() この依存関係が必要かどうかを返します。 |
ObjectSE | resolveCandidate(StringSE beanName, ClassSE<?> requiredType, BeanFactory beanFactory) この依存関係のマッチングアルゴリズムの候補結果として、指定された Bean 名を、指定されたファクトリの Bean インスタンスに解決します。 |
ObjectSE | resolveNotUnique(ClassSE<?> type, MapSE<StringSE, ObjectSE> matchingBeans) 使用すべきではありません。 5.1 現在、 resolveNotUnique(ResolvableType, Map) を推奨 |
ObjectSE | resolveNotUnique(ResolvableType type, MapSE<StringSE, ObjectSE> matchingBeans) 指定された一意でないシナリオを解決します。デフォルトでは、 NoUniqueBeanDefinitionException をスローします。 |
ObjectSE | resolveShortcut(BeanFactory beanFactory) 特定のファクトリに対するこの依存関係のショートカットを解決します。たとえば、事前に解決された情報を考慮に入れます。 |
void | setContainingClass(ClassSE<?> containingClass) オプションで、この依存関係を含む具象クラスを設定します。 |
getAnnotatedElement, getAnnotation, getAnnotations, getDeclaredType, getField, getMember, getMethodParameter, obtainMethodParameter, toString
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
public DependencyDescriptor(MethodParameter methodParameter, boolean required)
methodParameter
- ラップする MethodParameterrequired
- 依存関係が必要かどうか public DependencyDescriptor(MethodParameter methodParameter, boolean required, boolean eager)
methodParameter
- ラップする MethodParameterrequired
- 依存関係が必要かどうか eager
- 型マッチングのために潜在的なターゲット Bean を先行して解決するという意味で、この依存関係が「先行」であるかどうか public DependencyDescriptor(FieldSE field, boolean required)
field
- ラップするフィールド required
- 依存関係が必要かどうか public DependencyDescriptor(FieldSE field, boolean required, boolean eager)
field
- ラップするフィールド required
- 依存関係が必要かどうか eager
- 型マッチングのために潜在的なターゲット Bean を先行して解決するという意味で、この依存関係が「先行」であるかどうか public DependencyDescriptor(DependencyDescriptor original)
original
- コピーを作成する元の記述子 public boolean isRequired()
オプションのセマンティクスは、Java 8 の Optional
SE、パラメーターレベルの Nullable
アノテーションのバリアント(JSR-305 または FindBugs アノテーションセットなど)、または Kotlin の言語レベルの null 許容型宣言から派生します。
public boolean isEager()
@Nullable public ObjectSE resolveNotUnique(ResolvableType type, MapSE<StringSE,ObjectSE> matchingBeans) throws BeansException
NoUniqueBeanDefinitionException
をスローします。 サブクラスはこれをオーバーライドして、インスタンスの 1 つを選択するか、null
を返すことで結果なしでオプトアウトすることができます。
type
- リクエストされた Bean 型 matchingBeans
- 指定された型に対して事前に選択されている Bean 名と対応する Bean インスタンスのマップ (すでに適用されている修飾子など)null
BeansException
- 一意ではないシナリオが致命的である場合 @DeprecatedSE @Nullable public ObjectSE resolveNotUnique(ClassSE<?> type, MapSE<StringSE,ObjectSE> matchingBeans) throws BeansException
resolveNotUnique(ResolvableType, Map)
に置き換えられました。NoUniqueBeanDefinitionException
をスローします。 サブクラスはこれをオーバーライドして、インスタンスの 1 つを選択するか、null
を返すことで結果なしでオプトアウトすることができます。
type
- リクエストされた Bean 型 matchingBeans
- 指定された型に対して事前に選択されている Bean 名と対応する Bean インスタンスのマップ (すでに適用されている修飾子など)null
BeansException
- 一意ではないシナリオが致命的である場合 @Nullable public ObjectSE resolveShortcut(BeanFactory beanFactory) throws BeansException
解決アルゴリズムは、最初にこのメソッドを通じてショートカットの解決を試みてから、すべての Bean で通常の型マッチングアルゴリズムに進みます。サブクラスはこのメソッドをオーバーライドして、InjectionPoint
露出などを受信しながら、事前にキャッシュされた情報に基づいて解決パフォーマンスを向上させることができます。
beanFactory
- 関連するファクトリ null
(存在しない場合)BeansException
- ショートカットを取得できなかった場合 public ObjectSE resolveCandidate(StringSE beanName, ClassSE<?> requiredType, BeanFactory beanFactory) throws BeansException
デフォルトの実装は BeanFactory.getBean(String)
を呼び出します。サブクラスは、追加の引数またはその他のカスタマイズを提供する場合があります。
beanName
- この依存関係の候補結果としての Bean 名 requiredType
- Bean の予想される型 (アサーションとして)beanFactory
- 関連するファクトリ null
)BeansException
- Bean を取得できなかった場合 BeanFactory.getBean(String)
public void increaseNestingLevel()
public void setContainingClass(ClassSE<?> containingClass)
public ResolvableType getResolvableType()
ResolvableType
オブジェクトを作成します。public TypeDescriptor getTypeDescriptor()
TypeDescriptor
オブジェクトを作成します。public boolean fallbackMatchAllowed()
これはデフォルトでは false
ですが、AutowireCandidateResolver
にフォールバック一致も許容されることを提案するために、true
を返すようにオーバーライドできます。
public DependencyDescriptor forFallbackMatch()
fallbackMatchAllowed()
public void initParameterNameDiscovery(@Nullable ParameterNameDiscoverer parameterNameDiscoverer)
このメソッドは、実際にはこの時点でパラメーター名を取得しようとしません。アプリケーションが getDependencyName()
を呼び出したときにディスカバリが発生するようにします(もしあれば)。
@Nullable public StringSE getDependencyName()
null
である可能性があります)public ClassSE<?> getDependencyType()
null
)public boolean equals(ObjectSE other)
InjectionPoint
の equals
public int hashCode()
InjectionPoint
の hashCode