一、@Valid注解的作用
主要是用于数据校验,在实体或者DTO中定义不同的属性,来完成不同的校验规则,然后在Controller类中接收数据的参数前钱夹@Valid注解,那么接收过来的数据就会开启校验功能。
二、@Valid相关注解
三、BindingResult
bindingResult是和@Valid配合使用,跟在被校验对象之后,
1.如果没写bindingResult,就会排出BindException;
2.如果没写@Valid,bindingResult就接受不到异常。
注意: 不能使用bindingResult来接受String等简单对象的错误信息,简单对象校验失败会抛出ConstraintViolationException。
四、@Valid校验的流程
@Valid不支持平面的参数校验(直接用@PathVariable或@RequestParam接受的参数),所以对GET请求的参数还是按照正常的方式来校验,而POST则将DTO对象为参数,用@Valid方式校验。校验通过进入业务逻辑层,否则抛出异常,由全局异常处理器来处理。
1.DTO类