クラス BeanOverrideHandler
java.lang.ObjectSE
org.springframework.test.context.bean.override.BeanOverrideHandler
指定されたメタデータセットの Bean オーバーライドインスタンスを作成し、作成されたインスタンスを追跡するロールを担う、Bean オーバーライドインジェクションポイントのハンドラー。
警告 : 実装はキャッシュキーとして使用され、オーバーライドする Bean を識別するために使用される一意のメタデータセットに基づいて適切な equals() および hashCode() メソッドを実装する必要があります。オーバーライドされた equals() および hashCode() メソッドも、すべての Bean オーバーライドで使用される基本メタデータをサポートするために、このクラスの super 実装に委譲する必要があります。
BeanOverrideHandler の具体的な実装では、オーバーライドインスタンスの作成中に使用する追加のメタデータを保存できます (たとえば、アノテーションまたはアノテーション付きフィールドのさらなる処理に基づいて)。
注意 : オーバーライドできるのはシングルトン Bean のみです。非シングルトン Bean をオーバーライドしようとすると、例外が発生します。
- 導入:
- 6.2
- 作成者:
- Simon Basl é , Stephane Nicoll, Sam Brannen
コンストラクターの概要
コンストラクター修飾子コンストラクター説明protectedBeanOverrideHandler(FieldSE field, ResolvableType beanType, StringSE beanName, BeanOverrideStrategy strategy) 方法の概要
修飾子と型メソッド説明protected abstract ObjectSEcreateOverrideInstance(StringSE beanName, BeanDefinition existingBeanDefinition, ObjectSE existingBeanInstance) このBeanOverrideHandlerのメタデータに基づいて、既存のBeanDefinitionまたは既存のシングルトン Bean の Bean オーバーライドインスタンスを作成します。booleanstatic ListSE<BeanOverrideHandler>forTestClass(ClassSE<?> testClass) 指定されたtestClassを処理し、テストクラス、その型階層、その包含クラス階層内の@BeanOverrideフィールドから派生した対応するBeanOverrideHandlerリストを構築します。final StringSE上書きする Bean 名を取得するか、型getBeanType()の一致する単一の Bean を検索するためにnullを取得します。final ResolvableTypeオーバーライドする Bean 型を取得します。final FieldSEgetField()アノテーション付きのFieldSE を取得します。final BeanOverrideStrategyこのBeanOverrideHandlerのBeanOverrideStrategyを取得します。これは、Bean オーバーライドインスタンスを作成する方法とタイミングに影響します。inthashCode()toString()protected voidtrackOverrideInstance(ObjectSE override, SingletonBeanRegistry singletonBeanRegistry) このBeanOverrideHandlerによって作成された、提供された Bean オーバーライドインスタンスを追跡します。
コンストラクターの詳細
BeanOverrideHandler
protected BeanOverrideHandler(FieldSE field, ResolvableType beanType, @Nullable StringSE beanName, BeanOverrideStrategy strategy)
メソッドの詳細
forTestClass
指定されたtestClassを処理し、テストクラス、その型階層、その包含クラス階層内の@BeanOverrideフィールドから派生した対応するBeanOverrideHandlerリストを構築します。- パラメーター:
testClass- 処理するテストクラス- 戻り値:
- Bean オーバーライドハンドラーのリスト
getField
アノテーション付きのFieldSE を取得します。getBeanType
オーバーライドする Bean 型を取得します。getBeanName
上書きする Bean 名を取得するか、型getBeanType()の一致する単一の Bean を検索するためにnullを取得します。getStrategy
このBeanOverrideHandlerのBeanOverrideStrategyを取得します。これは、Bean オーバーライドインスタンスを作成する方法とタイミングに影響します。createOverrideInstance
protected abstract ObjectSE createOverrideInstance(StringSE beanName, @Nullable BeanDefinition existingBeanDefinition, @Nullable ObjectSE existingBeanInstance) このBeanOverrideHandlerのメタデータに基づいて、既存のBeanDefinitionまたは既存のシングルトン Bean の Bean オーバーライドインスタンスを作成します。- パラメーター:
beanName- 上書きされる Bean の名前existingBeanDefinition- 指定された Bean 名に対する既存の Bean 定義、または利用できないか関連がない場合はnullexistingBeanInstance- 折り返しの目的で提供された Bean 名の既存のインスタンス、または利用できないか関連がない場合はnull- 戻り値:
- Bean をオーバーライドするインスタンス
- 関連事項:
trackOverrideInstance
protected void trackOverrideInstance(ObjectSE override, SingletonBeanRegistry singletonBeanRegistry) このBeanOverrideHandlerによって作成された、提供された Bean オーバーライドインスタンスを追跡します。デフォルトの実装では、提供されたインスタンスを追跡しませんが、必要に応じてサブクラスでオーバーライドできます。
- パラメーター:
override- 追跡する Bean オーバーライドインスタンスsingletonBeanRegistry- このハンドラーがシングルトン Bean の形式で追跡状態を保存できるレジストリ- 関連事項:
equals
hashCode
public int hashCode()toString