参照文章:https://blog.csdn.net/f641385712/article/details/97621783
一、Java Bean Validation
Bean Validation 为 JavaBean 验证定义了相应的元数据模型和 API。Bean Validation是Java定义的一套基于注解/xml的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349的1.1版本,再到JSR 380的2.0版本(2.0完成于2017.08),已经经历了三个版本
二、@Validated和@Valid的区别
- @Valid:标准JSR-303规范的标记型注解,用来标记验证属性和方法返回值,进行级联和递归校验。
- @Validated:Spring的注解,是标准JSR-303的一个变种(补充),提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。
- 在Controller中校验方法参数时,使用@Valid和@Validated并无特殊差异(若不需要分组校验的话)。
- @Validated注解可以用于类级别,用于支持Spring进行方法级别的参数校验。
@Valid可以用在属性级别约束,用来表示级联校验。
- @Validated只能用在类、方法和参数上,而@Valid可用于方法、字段、构造器和参数上。
最后提示一点:Spring Boot的Web Starter已经加入了Bean Validation以及实现的依赖,可以直接使用。但若是纯Spring MVC环境,请自行导入
请学习:Spring MVC处理入参的时机。