クラス AbstractHandlerExceptionResolver
- 実装されているすべてのインターフェース:
Ordered,HandlerExceptionResolver
- 既知の直属サブクラス
AbstractHandlerMethodExceptionResolver、DefaultHandlerExceptionResolver、ResponseStatusExceptionResolver、SimpleMappingExceptionResolver
HandlerExceptionResolver 実装の抽象基本クラス。 リゾルバーが適用されるマッピングされたハンドラーとハンドラークラスをサポートし、Ordered インターフェースを実装します。
- 導入:
- 3.0
- 作成者:
- Arjen Poutsma, Juergen Hoeller, Sam Brannen
フィールドのサマリー
フィールドインターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidaddMappedHandlerClass(ClassSE<?> mappedHandlerClass) protected StringSEbuildLogMessage(ExceptionSE ex, HttpServletRequestEE request) 特定のリクエストの処理中に発生した特定の例外のログメッセージを作成します。protected abstract ModelAndViewdoResolveException(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndViewを返します。protected ClassSE<?>[]configuredマップされたハンドラークラスを返します。intgetOrder()このオブジェクトの順序値を取得します。protected booleansetMappedHandlers(Set)、setMappedHandlerClasses(Class[])、またはsetMappedHandlerPredicate(Predicate)経由で登録されたハンドラーマッピングがあるかどうか。protected voidlogException(ExceptionSE ex, HttpServletRequestEE request) "warnLogCategory"プロパティを介して警告ログが有効になっている場合、警告レベルで特定の例外をログに記録します。protected voidprepareResponse(ExceptionSE ex, HttpServletResponseEE response) 例外的なケースの対応を準備します。protected voidpreventCaching(HttpServletResponseEE response) 対応する HTTPCache-Control: no-storeヘッダーを設定することにより、レスポンスがキャッシュされないようにします。resolveException(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) このリゾルバーが適用されることになっているかどうかを確認します(つまりvoidsetMappedHandlerClasses(ClassSE<?>... mappedHandlerClasses) この例外リゾルバーが適用されるクラスのセットを指定します。voidsetMappedHandlerPredicate(PredicateSE<ObjectSE> predicate) Predicateを使用して、この例外リゾルバーがどのハンドラーに適用されるかを決定します。これには、リクエストがマップされなかった場合のハンドラーがnullである場合も含まれます。voidsetMappedHandlers(SetSE<?> mappedHandlers) この例外リゾルバーが適用されるハンドラーのセットを指定します。voidsetOrder(int order) voidsetPreventResponseCaching(boolean preventResponseCaching) この例外リゾルバーによって解決されたビューの HTTP レスポンスキャッシュを防止するかどうかを指定します。voidsetWarnLogCategory(StringSE loggerName) 警告ログのログカテゴリを設定します。protected booleanshouldApplyTo(HttpServletRequestEE request, ObjectSE handler) このリゾルバーが特定のハンドラーに適用されることになっているかどうかを確認します。
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
AbstractHandlerExceptionResolver
public AbstractHandlerExceptionResolver()
メソッドの詳細
setOrder
public void setOrder(int order) getOrder
public int getOrder()インターフェースからコピーされた説明:Orderedこのオブジェクトの順序値を取得します。値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット
load-on-startupの値に多少似ています)。同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
setMappedHandlerPredicate
Predicateを使用して、この例外リゾルバーがどのハンドラーに適用されるかを決定します。これには、リクエストがマップされなかった場合のハンドラーがnullである場合も含まれます。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
- 導入:
- 6.1.2
setMappedHandlers
この例外リゾルバーが適用されるハンドラーのセットを指定します。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
setMappedHandlerClasses
この例外リゾルバーが適用されるクラスのセットを指定します。リゾルバーは、指定された型のハンドラーにのみ適用されます。指定された型は、ハンドラーのインターフェースまたはスーパークラスである場合もあります。ハンドラー述語、ハンドラー、ハンドラークラスが設定されていない場合、例外リゾルバーはすべてのハンドラーに適用されます。
addMappedHandlerClass
- 導入:
- 6.1
getMappedHandlerClasses
configuredマップされたハンドラークラスを返します。setWarnLogCategory
警告ログのログカテゴリを設定します。名前は Commons Logging を介して基盤となるロガー実装に渡され、ロガーの構成に従ってログカテゴリとして解釈されます。nullまたは空の文字列が渡されると、警告ログはオフになります。デフォルトでは警告ロギングはありませんが、
DefaultHandlerExceptionResolverなどのサブクラスはそのデフォルトを変更できます。この設定を指定して、特定のカテゴリへの警告ログを有効にします。または、カスタムロギングのlogException(java.lang.Exception, jakarta.servlet.http.HttpServletRequest)メソッドをオーバーライドします。setPreventResponseCaching
public void setPreventResponseCaching(boolean preventResponseCaching) この例外リゾルバーによって解決されたビューの HTTP レスポンスキャッシュを防止するかどうかを指定します。デフォルトは
falseです。レスポンスキャッシュを抑制する HTTP レスポンスヘッダーを自動的に生成するには、これをtrueに切り替えます。resolveException
@Nullable public ModelAndView resolveException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) このリゾルバーが適用されることになっているかどうかを確認し(つまり、提供されたハンドラーが構成済みのハンドラーまたはハンドラークラスのいずれかに一致する場合)、doResolveException(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, java.lang.Object, java.lang.Exception)テンプレートメソッドに委譲します。- 次で指定:
- インターフェース
HandlerExceptionResolverのresolveException - パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンスhandler- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull(たとえば、マルチパート解決が失敗した場合)ex- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する
ModelAndView、または解決チェーンでのデフォルト処理の場合はnull
shouldApplyTo
このリゾルバーが特定のハンドラーに適用されることになっているかどうかを確認します。デフォルトの実装では、構成されている handlerPredicate ハンドラーとハンドラークラス (存在する場合) に対してチェックが行われます。
- パラメーター:
request- 現在の HTTP リクエストhandler- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull(たとえば、マルチパート解決が失敗した場合)- 戻り値:
- これが解決されて、指定されたリクエストとハンドラーの例外の解決に進むかどうか
- 関連事項:
hasHandlerMappings
protected boolean hasHandlerMappings()setMappedHandlers(Set)、setMappedHandlerClasses(Class[])、またはsetMappedHandlerPredicate(Predicate)経由で登録されたハンドラーマッピングがあるかどうか。- 導入:
- 5.3
logException
"warnLogCategory"プロパティを介して警告ログが有効になっている場合、警告レベルで特定の例外をログに記録します。ログに記録する具体的なメッセージを判別するために、
buildLogMessage(java.lang.Exception, jakarta.servlet.http.HttpServletRequest)を呼び出します。- パラメーター:
ex- ハンドラーの実行中にスローされた例外request- 現在の HTTP リクエスト (メタデータの取得に役立ちます)- 関連事項:
buildLogMessage
特定のリクエストの処理中に発生した特定の例外のログメッセージを作成します。- パラメーター:
ex- ハンドラーの実行中にスローされた例外request- 現在の HTTP リクエスト (メタデータの取得に役立ちます)- 戻り値:
- 使用するログメッセージ
prepareResponse
例外的なケースの対応を準備します。"preventResponseCaching"プロパティが "true" に設定されている場合、デフォルトの実装ではレスポンスがキャッシュされません。- パラメーター:
ex- ハンドラーの実行中にスローされた例外response- 現在の HTTP レスポンス- 関連事項:
preventCaching
対応する HTTPCache-Control: no-storeヘッダーを設定することにより、レスポンスがキャッシュされないようにします。- パラメーター:
response- 現在の HTTP レスポンス
doResolveException
@Nullable protected abstract ModelAndView doResolveException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表すModelAndViewを返します。特定の例外チェックを適用するために、サブクラスでオーバーライドできます。このテンプレートメソッドは、このリゾルバーが適用されるかどうか ( "mappedHandlers" など) を確認した後に呼び出されるため、実装では実際の例外処理をそのまま続行できます。
- パラメーター:
request- 現在の HTTP リクエストresponse- 現在の HTTP レスポンスhandler- 実行されたハンドラー、または例外時に何も選択されなかった場合はnull(たとえば、マルチパート解決が失敗した場合)ex- ハンドラーの実行中にスローされた例外- 戻り値:
- 転送先の対応する
ModelAndView、または解決チェーンでのデフォルト処理の場合はnull