验证某些配置时,我从 application.yml 加载 使用如下自定义 validator :
public class MyValidator implements ConstraintValidator<MyAnnotation, List<MyClass>> {
@Override
public void initialize(MyAnnotation myAnnotation) {
//nothing to do
}
@Override
public boolean isValid(List<MyClass> myList, ConstraintValidatorContext context) {
// validation logic
}
}
如果验证逻辑触发异常,例如在空指向的情况下,我注意到其他可能的 validator 不会启动,并且会显示一条错误消息,内容类似于绑定(bind)错误。
避免这种情况的最佳做法是什么?
最佳答案
因此,Hibernate Validator validator 的一般最佳实践是它们应该将 null 条目视为有效。
如果您检查我们在 Hibernate Validator 中提供的那些,它们都会针对 null 条目返回 true。这个想法是当您想要检查 null 时显式使用 @NotNull
。
有一些异常(exception),例如@NotBlank
,但这是一般的最佳实践。
显然,如上所述,您的代码需要正确并避免 NPE 或其他异常。但这是不言而喻的。
关于java - isValid 抛出异常 - hibernate validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56681963/