zoukankan      html  css  js  c++  java
  • @Valid 和@Validated的区别


    @Valid 作用在方法,字段,构造器和参数上

    @Validated 作用在类 方法 和参数上

    @Validated 和@Valid 配合@ModelAttribute 与BindingResult 对对象进行校验 ,如果校验不通过,那么错误信息就会封装到BindingResult对象了,可以通过bindingResult的相关方法获取详细的错误信息并返回给用户。如果不加BindingResult则会抛出异常

    @Validated 配合MethodValidationPostProcessor拦截器 实现对单个参数进行校验,在Controller前加@Validated,如下:注入这个拦截器


    @Valid 支持嵌套校验

    例如要对CsConfigDTO里的字段校验,需要在字段list上加@Valid,这时候CsConfigDTO里校验注解(例如@@NotNull等)就会生效

    @Validated支持分组,而@Valid不支持




    注意点:First 需要继承Default,不然其他参数校验不生效

    对BindingResult全局处理,如果每个校验都去判断的话,太啰嗦重复了,用AOP处理

    写一个注解作为aop的切点

    写逻辑处理

    使用,只要在需要处理的类上加上面写的注解即可 这时候对BindingResult的判断全交给aop去处理

    说了这么多了,现在直接上例子说明下

    1. @Validated和@Valid都可以作用于参数
    2. 但是@NotBlank作用于参数时 需要在类上加上@Validated

  • 相关阅读:
    模糊匹配
    UPDATE SET FROM WHERE 续
    SQL SERVER 中row_number用法
    临时表和表变量
    镜像
    经典行列转换
    表记录查询最快查询方式
    NULL不是数值
    自增长值
    JSON
  • 原文地址:https://www.cnblogs.com/fangh816/p/13299509.html
Copyright © 2011-2022 走看看