gpt4 book ai didi

spring - 如何在 Spring boot 应用程序中记录验证错误

转载 作者:行者123 更新时间:2023-12-03 16:04:25 25 4
gpt4 key购买 nike

我在我的 REST 服务中使用 SpringBoot (spring-boot-starter-web 1.5.16.RELEASE) 和 hibernate-validator 6.0.11.Final。

使用适当的验证约束注释的 DTO 对象(更新:我在 Controller 参数上使用 @Valid 注释)并且验证按预期工作。

我希望将所有验证错误(发送给客户端的)记录在日志文件中。

我认为应该有一些简单的方法来启用这种消息(例如应用程序属性中的标志),但我在任何地方都找不到它。

任何建议,将不胜感激。

最佳答案

更新:
在这种情况下,您可以使用 BindingResult@Valid 之后定义的对象 Controller 方法中的 bean 声明,例如

@RequestMapping(value = "/foo")
public String foo(@Valid POJO object, BindingResult result) {
List<FieldError> errors = result.getFieldErrors();
for (FieldError error : errors ) {
log.error(error.getDefaultMessage());
}
}

或者你最好使用 @ExceptionHandler对于异常类型 MethodArgumentNotValidException
旧答案:
如果您正在验证 bean 类
Set<ConstraintViolation<POJO>> violations = validator.validate(pojo);

然后你可以迭代违规并记录它们,比如
for (ConstraintViolation<POJO> violation : violations) {
log.error(violation.getMessage());
}

复制自: https://www.baeldung.com/javax-validation

关于spring - 如何在 Spring boot 应用程序中记录验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52840724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com