クラス ControllerAdviceBean
java.lang.ObjectSE
org.springframework.web.method.ControllerAdviceBean
- 実装されているすべてのインターフェース:
Ordered
必ずしもインスタンス化する必要なく、
@ControllerAdvice Spring で管理される Bean に関する情報をカプセル化します。findAnnotatedBeans(ApplicationContext) メソッドを使用すると、このような Bean を検出できます。ただし、ControllerAdviceBean は、@ControllerAdvice アノテーションのないオブジェクトを含め、任意のオブジェクトから作成できます。
- 導入:
- 3.2
- 作成者:
- Rossen Stoyanchev, Brian Clozel, Juergen Hoeller, Sam Brannen
フィールドのサマリー
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクターの概要
コンストラクターコンストラクター説明ControllerAdviceBean(ObjectSE bean) 指定された Bean インスタンスを使用してControllerAdviceBeanを作成します。ControllerAdviceBean(StringSE beanName, BeanFactory beanFactory) 指定された Bean 名とBeanFactoryを使用してControllerAdviceBeanを作成します。ControllerAdviceBean(StringSE beanName, BeanFactory beanFactory, ControllerAdvice controllerAdvice) メソッドのサマリー
修飾子と型メソッド説明booleanstatic ListSE<ControllerAdviceBean>findAnnotatedBeans(ApplicationContext context) 指定されたApplicationContextで@ControllerAdviceのアノテーションが付けられた Bean を見つけ、ControllerAdviceBeanインスタンスとしてラップします。ClassSE<?>含まれている Bean の型を返します。intgetOrder()含まれている Bean のオーダー値を取得します。inthashCode()booleanisApplicableToBeanType(ClassSE<?> beanType) 指定された Bean 型がこのControllerAdviceBeanによって通知される必要があるかどうかを確認します。このControllerAdviceBeanの Bean インスタンスを取得します。必要に応じて、BeanFactoryを介して Bean 名を解決します。toString()
コンストラクターの詳細
ControllerAdviceBean
指定された Bean インスタンスを使用してControllerAdviceBeanを作成します。- パラメーター:
bean- Bean インスタンス
ControllerAdviceBean
指定された Bean 名とBeanFactoryを使用してControllerAdviceBeanを作成します。- パラメーター:
beanName- Bean の名前beanFactory- 最初に Bean 型を取得し、後で実際の Bean を解決するBeanFactory
ControllerAdviceBean
public ControllerAdviceBean(StringSE beanName, BeanFactory beanFactory, @Nullable ControllerAdvice controllerAdvice) - パラメーター:
beanName- Bean の名前beanFactory- 最初に Bean 型を取得し、後で実際の Bean を解決するBeanFactorycontrollerAdvice- Bean の@ControllerAdviceアノテーション、またはまだ取得されていない場合はnull- 導入:
- 5.2
メソッドの詳細
getOrder
public int getOrder()含まれている Bean のオーダー値を取得します。Spring Framework 5.3 以降、オーダー値は次のアルゴリズムを使用して遅延検索され、キャッシュされます。ただし、スコープ付き Bean として構成されている
@ControllerAdviceBean- たとえば、リクエストスコープまたはセッションスコープの Bean として - 先行して解決されることはありません。Orderedは、スコープ付き@ControllerAdviceBean には適用されません。- 解決された Bean が
Orderedを実装している場合は、Ordered.getOrder()から返された値を使用します。 - ファクトリメソッドがわかっている場合は、
OrderUtils.getOrder(AnnotatedElement)によって返される値を使用します。 - Bean 型がわかっている場合は、
Ordered.LOWEST_PRECEDENCEをデフォルトのオーダー値として使用し、OrderUtils.getOrder(Class, int)から返された値を使用します。 - それ以外の場合は、デフォルトのフォールバックオーダー値として
Ordered.LOWEST_PRECEDENCEを使用します。
- 解決された Bean が
getBeanType
含まれている Bean の型を返します。Bean 型が CGLIB 生成クラスである場合、元のユーザー定義クラスが返されます。
resolveBean
このControllerAdviceBeanの Bean インスタンスを取得します。必要に応じて、BeanFactoryを介して Bean 名を解決します。Spring Framework 5.2 の時点で、Bean インスタンスが解決されると、それがシングルトンの場合はキャッシュされるため、
BeanFactoryでの繰り返しのルックアップが回避されます。isApplicableToBeanType
指定された Bean 型がこのControllerAdviceBeanによって通知される必要があるかどうかを確認します。- パラメーター:
beanType- チェックする Bean の型- 導入:
- 4.0
- 関連事項:
equals
hashCode
public int hashCode()toString
findAnnotatedBeans
指定されたApplicationContextで@ControllerAdviceのアノテーションが付けられた Bean を見つけ、ControllerAdviceBeanインスタンスとしてラップします。Spring Framework 5.2 の時点で、返されるリスト内の
ControllerAdviceBeanインスタンスは、OrderComparator.sort(List)を使用してソートされます。