@Valid与@Validated区别及使用场景

@Valid与@Validated区别

https://blog.csdn.net/wounler/article/details/125233260

@Valid 注解是 Java 标准的 JSR 380 规范中的注解,它可以用于校验一个对象的属性。在 Spring 中,通常将 @Valid 注解应用于控制器方法参数上,以触发数据校验。例如,当提交表单时,可以使用 @Valid 标记表单绑定的对象,以确保对象中的数据满足某些约束条件。

@Validated 注解是 Spring 框架中提供的注解,它可以用于校验方法参数以及类级别的校验。在方法级别,它可以用于校验方法参数,而在类级别,它可以用于校验该类的所有方法参数。与 @Valid 注解不同,@Validated 注解提供了分组校验功能,允许根据具体情况对不同的约束条件进行分组,以实现更细粒度的校验。

在 Spring 中,当需要对方法参数进行校验时,可以使用 @Validated 注解代替 @Valid 注解。同时,如果需要使用分组校验功能,则只能使用 @Validated 注解。

使用场景:

@Validated 和 @Valid 注解在 Spring 中用于数据校验,它们的使用场景略有不同。

@Valid 注解通常用于控制器方法参数上,以触发数据校验。它适用于以下场景:

  1. 校验表单数据:当提交表单时,可以使用 @Valid 标记表单绑定的对象,以确保对象中的数据满足某些约束条件。

  1. 校验 REST API 的请求体:当使用 Spring MVC 框架开发 REST API 时,可以使用 @RequestBody 注解将请求体映射为一个对象,然后使用 @Valid 注解校验该对象中的数据。

  1. 校验方法参数:当需要校验一个方法参数时,可以将该参数标记为 @Valid,以确保该参数中的数据满足某些约束条件。

@Validated 注解则适用于以下场景:

  1. 校验方法参数:当需要对方法参数进行校验时,可以使用 @Validated 注解代替 @Valid 注解。

  1. 校验类级别的约束:可以使用 @Validated 注解在类级别上定义约束条件,并在该类的方法中使用。

  1. 分组校验:当需要对不同的约束条件进行分组校验时,只能使用 @Validated 注解。可以在约束条件上使用 @javax.validation.GroupSequence 和 @javax.validation.GroupSequenceProvider 注解进行分组。

总的来说,@Valid 注解适用于基本的数据校验场景,而 @Validated 注解则提供了更多的高级功能,例如类级别约束和分组校验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值