@Validated和@Valid区别及使用

这里写目录标题

概要

@Validated 和 @Valid 都是用于在 Spring 框架中进行数据校验的注解,用于验证方法参数、方法返回值、类的字段等。它们有一些相似之处,但也有一些区别。以下是它们的使用和使用限制的详细说明

@Validated

@Validated 是 Spring 框架提供的注解,用于在方法参数级别启用数据校验。它提供了一些特殊的功能,如分组校验、参数校验和方法级别的校验。主要用于在 Controller 类中对请求参数进行校验。

使用 @Validated 时需要注意以下几点:

  1. @Validated 只能用在类、方法、接口、方法参数上。在类上使用 @Validated 可以开启方法级别的校验,但是要求方法参数上的校验注解必须是 JSR 303(即 javax.validation 包下的注解)。

  2. @Validated 支持分组校验,通过指定 groups 属性来指定校验分组。

  3. @Validated 对集合类型(如 List、Set)的元素进行校验需要配合 @Valid 注解使用。在集合字段上添加 @Valid 注解,然后在方法参数上使用 @Validated,以触发集合元素的校验。

@Valid

@Valid 是 JSR 303(Bean Validation)规范中定义的注解,用于在方法参数、方法返回值、字段等级别启用数据校验。它主要用于在任何类中对数据进行校验,不仅限于 Spring 框架。

使用 @Valid 时需要注意以下几点:

  1. @Valid 可以用在方法参数、方法返回值、类的字段上。在方法参数上使用 @Valid 可以触发参数对象的校验。

  2. 对于普通对象的校验,可以在方法参数上直接使用 @Valid 注解。

  3. 对于集合类型(如 List、Set)的元素进行校验,需要在集合字段上添加 @Valid 注解,然后在方法参数上使用 @Valid 注解,以触发集合元素的校验。

  4. @Valid 不支持分组校验,只能使用默认分组。

总结

综合来说,@Validated 主要用于 Spring 框架中对请求参数进行校验,支持分组校验和方法级别校验;@Valid 是 JSR 303 规范定义的注解,可以在任何类中使用,支持校验方法参数、方法返回值、字段等,并且可以用于对集合元素进行校验。在实际应用中,可以根据具体的需求选择适合的注解来进行数据校验。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值