@Valid 注解,是 Bean Validation 所定义,可以添加在普通方法、构造方法、方法参数、方法返回、成员变量上,表示它们需要进行约束校验。

@Validated 注解,是 Spring Validation 锁定义,可以添加在类、方法参数、普通方法上,表示它们需要进行约束校验。同时,@Validatedvalue 属性,支持分组校验。属性如下:

对于初学的胖友来说,很容易搞混 @Valid@Validated 注解。

① 声明式校验

Spring Validation @Validated 注解,实现声明式校验。

② 分组校验

Bean Validation 提供的 @Valid 注解,因为没有分组校验的属性,所以无法提供分组校验。此时,我们只能使用 @Validated 注解。

③ 嵌套校验

相比来说,@Valid 注解的地方,多了【成员变量】。这就导致,如果有嵌套对象的时候,只能使用 @Valid 注解。例如说:

  • 如果不在 User.profile 属性上,添加 @Valid 注解,就会导致 UserProfile.nickname 属性,不会进行校验。

当然,@Valid 注解的地方,也多了【构造方法】和【方法返回】,所以在有这方面的诉求的时候,也只能使用 @Valid 注解。

🔥 总结

总的来说,绝大多数场景下,我们使用 @Validated 注解即可。

而在有嵌套校验的场景,我们使用 @Valid 注解添加到成员属性上。




HTTPX 基础教程-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客