次のようにフィールドに制約を設定しました。
import javax.validation.constraints.Pattern;
@Pattern(regexp=SOME_REGEX)
private String someField;
正規表現は正しく機能していますが、無効な値の場合、値がログに記録されます。
[Field error in object 'containingSomeField' on field 'someField': rejected value [InvalidValue123];
注釈でこのロギングを無効にする方法はありますか? これまでのところ何も見つかりませんでした。
一般的にログを無効にしたくはありません。この値の出力だけです。値をマスキングするだけで十分です。
編集:
私自身の質問に対する答えを見つけました。デフォルトの例外ハンドラーをオーバーライドできます。
@ControllerAdvice
public class ResponseExceptionHandler extends ResponseEntityExceptionHandler {
@Override
public final ResponseEntity<Object> handleMethodArgumentNotValid(
MethodArgumentNotValidException ex,
@NonNull HttpHeaders headers,
@NonNull HttpStatus status,
@NonNull WebRequest request
) {
// Your code here
}
}