验证某些配置时,我正在从application.yml加载 使用自定义验证程序,如下所示:
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
}
}
如果验证逻辑触发异常(例如,在指向空指针的情况下),我注意到其他可能的验证器未启动,并显示一条错误消息,内容类似于绑定错误。
避免这种情况的最佳做法是什么?
答案 0 :(得分:0)
因此,使用Hibernate Validator的验证器的一般最佳做法是,他们应将空条目视为有效。
如果您检查我们在Hibernate Validator中提供的选项,则对于空条目它们都将返回true。这个想法是在您要检查null时显式使用@NotNull
。
有一些例外情况,例如@NotBlank
,但这是一般的最佳做法。
很显然,如上所述,您的代码必须正确,并避免NPE或其他异常。但这不用说。