春天中校验器(Validator)的深入讲解

  

  

春框架的验证器组件,是个辅助组件,在进行数据的完整性和有效性非常有用,通过定义一个某个验证器,即可在其它需要的地方,使用即可,非常通用。

  

春天中校验器(Validator)的深入讲解“> <br/>
  </p>
  <p>应用在执行业务逻辑之前,必须通过校验保证接受到的输入数据是合法正确的,但很多时候同样的校验出现了多次,在不同的层,不同的方法上,导致代码冗余,浪费时间,违反干原则。</p>
  <ul>
  <李>每一个控制器都要校验李</>
  <李>过多的校验参数会导致代码太长李</>
  <李>代码的复用率太差,同样的代码如果出现多次,在业务越来越复杂的情况下,维护成本呈指数上升。</李>
  </ul>
  <p>可以考虑把校验的代码封装起来,来解决出现的这些问题。</p>
  <p> </p>
  <p> jsr - 303是Java Bean为数据合法性校验提供的标准框架,它定义了一套可标注在成员变量,属性方法上的校验注解。<br/>
  Hibernate验证提供了这套标准的实现,在我们引入弹簧引导网络起动器或者弹簧引导启动验证的时候,默认会引入Hibernate验证。</p>
  <p> </p>
  <p>说了这么多废话,上代码。</p>
  <p> <强> 1,引入SpringBoot项目</强> </p>
  
  <pre类=   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-web   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.hibernate.validator   & lt; artifactId> hibernate-validator   & lt;/dependency>   & lt; !——引入lomhok——比;   & lt; dependency>   & lt; groupId> org.projectlombok   & lt; artifactId> lombok   & lt;/dependency>之前      

<强> 2,编写校验对象
  

        @ data   公开课用户{//名字不允许为空,并且名字的长度在2位到30位之间//如果名字的长度校验不通过,那么提示错误信息   @NotNull   @ (min=2, max=30,消息=扒爰觳槊值某ざ仁欠裼形侍狻?   私人字符串名称;//不允许为空,并且年龄的最小值为18   @NotNull   @Min (18)   私人整数年龄;   }      

<强> 3,创建控制器

        @SpringBootApplication   @RestController   公开课UserApplication {   公共静态void main (String [] args) {   SpringApplication.run (UserApplication.class, args);   }//1。要校验的参数前,加上@Valid注解//2。跟紧随其后的,上一个BindingResult来存储校验信息   test1 @RequestMapping (“/?   公共对象test1 (   @Valid用户用户,   BindingResult BindingResult   ){//如果检验出了问题,就返回错误信息//这里我们返回的是全部的错误信息,实际中可根据bindingResult的方法根据需要返回自定义的信息。//通常的解决方案为:jsr - 303 +全ExceptionHandler局   如果(bindingResult.hasErrors ()) {   返回bindingResult.getAllErrors ();   }   返回“OK”;   }   }      

<强> 4,运行应用
  

  

稍作演示下运行的结果,可以看出校验框架已经生效了。

  

春天中校验器(Validator)的深入讲解“> <br/>
  校验年龄<br/>
  </p>
  <p> <img src=

  

校验名称

  

春天中校验器(Validator)的深入讲解

  

校验通过
  

  

<强>常见的校验注解

  

@Null被注释的元素必须为零
  

  

@NotNull被注释的元素必须不为空
  

  

@AssertTrue被注释的元素必须为真实
  

  

@AssertFalse被注释的元素必须为假
  

  

@Min(值)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
  

  

@Max(值)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
  

  

@DecimalMin(值)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
  

  

@DecimalMax(值)被注释的元素必须是一个数字,其值必须小于等于指定的最大值

春天中校验器(Validator)的深入讲解