クラス 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) メソッドのサマリー
修飾子と型メソッド説明boolean
static ListSE<ControllerAdviceBean>
findAnnotatedBeans
(ApplicationContext context) 指定されたApplicationContext
で@ControllerAdvice
のアノテーションが付けられた Bean を見つけ、ControllerAdviceBean
インスタンスとしてラップします。ClassSE<?>
含まれている Bean の型を返します。int
getOrder()
含まれている Bean のオーダー値を取得します。int
hashCode()
boolean
isApplicableToBeanType
(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 を解決するBeanFactory
controllerAdvice
- Bean の@ControllerAdvice
アノテーション、またはまだ取得されていない場合はnull
- 導入:
- 5.2
メソッドの詳細
getOrder
public int getOrder()含まれている Bean のオーダー値を取得します。Spring Framework 5.3 以降、オーダー値は次のアルゴリズムを使用して遅延検索され、キャッシュされます。ただし、スコープ付き Bean として構成されている
@ControllerAdvice
Bean- たとえば、リクエストスコープまたはセッションスコープの Bean として - 先行して解決されることはありません。Ordered
は、スコープ付き@ControllerAdvice
Bean には適用されません。- 解決された 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)
を使用してソートされます。