@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 注解通常用于控制器方法参数上,以触发数据校验。它适用于以下场景:
校验表单数据:当提交表单时,可以使用 @Valid 标记表单绑定的对象,以确保对象中的数据满足某些约束条件。
校验 REST API 的请求体:当使用 Spring MVC 框架开发 REST API 时,可以使用 @RequestBody 注解将请求体映射为一个对象,然后使用 @Valid 注解校验该对象中的数据。
校验方法参数:当需要校验一个方法参数时,可以将该参数标记为 @Valid,以确保该参数中的数据满足某些约束条件。
@Validated 注解则适用于以下场景:
校验方法参数:当需要对方法参数进行校验时,可以使用 @Validated 注解代替 @Valid 注解。
校验类级别的约束:可以使用 @Validated 注解在类级别上定义约束条件,并在该类的方法中使用。
分组校验:当需要对不同的约束条件进行分组校验时,只能使用 @Validated 注解。可以在约束条件上使用 @javax.validation.GroupSequence 和 @javax.validation.GroupSequenceProvider 注解进行分组。
总的来说,@Valid 注解适用于基本的数据校验场景,而 @Validated 注解则提供了更多的高级功能,例如类级别约束和分组校验。