@Validated 和 @Valid 注解区别:Spring参数校验指南
@Validated 和 @Valid 都是 Spring 框架中用于参数校验的注解,但它们存在以下区别:
-
作用范围不同: @Validated 用于类和方法级别的校验,@Valid 用于方法参数级别的校验。
-
校验机制不同: @Validated 是 Spring 框架提供的校验机制,可以支持 JSR-303/JSR-349 规范之外的校验注解,如 ' @Email ', ' @NotBlank ' 等;而 @Valid 是 JSR-303/JSR-349 规范中定义的校验注解,只能支持规范中定义的注解。
-
异常类型不同: @Validated 校验失败会抛出 MethodArgumentNotValidException 异常,@Valid 校验失败会抛出 ConstraintViolationException 异常。
-
分组校验方式不同: @Validated 可以支持分组校验,@Valid 不支持分组校验。
综上所述,@Validated 和 @Valid 的使用场景不同,需要根据实际情况选择合适的注解。
原文地址: https://www.cveoy.top/t/topic/kWaG 著作权归作者所有。请勿转载和采集!