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