SpringBootグローバル例外ハンドラ@RestControllerAdvice + @ exceptionHandlerの検証リクエストパラメータ

ControllerAdvice

クラス注釈付き二「コントローラ」を示します。

特化したように、走査経路ベースの実装クラスの自動検出を可能にします。@Component

多くの場合、定義するために使用される、   すべてに適用する方法。@ExceptionHandler@InitBinder@ModelAttribute@RequestMapping

いずれか、  またはその別名は、 特定のサブセットを補助するために、コントローラを定義するために指定することができます。複数のセレクタを適用する場合、適用される「または」論理する-コントローラは、少なくとも1つのセレクタに一致するように選択されるべきで示します。annotations()basePackageClasses()basePackages()value()

デフォルトの動作(あなたはどのセレクタの使用を使用しない場合は、である)、@ControllerAdviceクラスコメントはすべての既知のコントローラを支援します。

これらのチェックはそう財産の多くを追加し、マイナスの影響(複雑さ、パフォーマンス)を有することができる様々な戦略を使用して、実行時に行われますのでご注意ください。


/ **
取り扱い* SpringMVC統一例外
*注:唯一のコントローラ層をスローされた例外を処理することができるコントローラ層エンハンサー、用@ControllerAdvice;
*コード間の呼び出しメカニズム階層、例外処理メカニズム、ここで処理するコントローラ層異常、等価
*グローバル例外処理
* @author
* /

@RestControllerAdvice
パブリッククラスGlobalExceptionHandler {


@ExceptionHandler(MethodArgumentNotValidException.class)
パブリックオブジェクトはBindException(MethodArgumentNotValidException E){
BindingResult BindingResult e.getBindingResult =();
StringBuilderの新しい新しいSB = StringBuilder();
sb.append( "ベースデータチェックによって:");
のため(fieldError fielderror:bindingResult.getFieldErrors()){
sb.append( "\ N-")。
sb.append(fieldError.getDefaultMessage())。
}
マップの<string、オブジェクト>結果=新しいHashMapの<>();
result.put( "コード"、 "00000010")。
result.put( "データ"、sb.toString())。
結果を返します。
}

}


@Length(MIN = 12、メッセージ= 「 注文番号正しくない長さ」)
@NotBlank(メッセージ=「注文番号がNULLでない」)
文字列注文ID。

おすすめ

転載: www.cnblogs.com/xiqoqu/p/12016770.html