从上图的红框,我都不用展示具体注解应用,大家就懂了。很明显是一个inclinaionOrigin的对象上,有一个属性dataId没有通过@NotNull注解的校验。并且还可以从上图中找到@NotNull注解的message等信息,以及异常堆栈的追踪信息。
并且由于返回异常信息的格式固定,所以可以直接通过对BindException的解析,来获取所需的绝大部分异常信息。
六,总结简单来说,就五点:
尽量使用Validation框架自带的注解。
使用自定义注解前,想想是否可以通过@Pattern解决问题。
payload其实类似groups,不过对应的接口需要继承Payload接口。
Validation框架校验失败时,抛出的BindException,包含绝大部分所需的异常信息。
Validation框架是优秀的数据校验规范的落实方案,配合全局异常处理等,更棒。
最后,愿与诸君共进步。
七,附录 参考告别996 实现高效编程 减少开发压力
Bean Validation specification
@Valid与@Validated注解
@Validated和@Valid区别...
JavaBean Validation - javax.validation.Payload Examples
JavaBean Validation - Constraint payloads
Chapter 3. Creating custom constraints