diff --git a/spring/Spring core/@Validated, @Valid.md b/spring/Spring core/@Validated, @Valid.md new file mode 100644 index 0000000..b0906b8 --- /dev/null +++ b/spring/Spring core/@Validated, @Valid.md @@ -0,0 +1,12 @@ +# @Validated & @Valid +## @Validated +@Validated可以用于方法级别,方法参数级别以及类级别 +- 类级别:当@Validated注解用于类级别时,该类中所有的约束(例如@Max,@Size)都会被校验 +- 参数级别:类似于@Valid +- 方法级别:将@Validated注解用于方法级别,会override group信息,但是不会插入切面 + +可以将@Validated作用于spring mvc handler的参数,也可以将其作为方法级别的验证。方法级别的验证允许覆盖validation group,但是不会作为切面。 +> @Validated实现原理基于spring aop,故而只有标注了@Validated注解的bean对象才会被代理并拦截 + +## @Valid +相对于@Validated注解,@Valid注解允许应用于返回类型和field上,故而通过@Valid注解可以用于嵌套类的校验 \ No newline at end of file