【Spring Boot】Bean字段校验-JSR303

飞翔在天 / 2023-08-19 / 原文

规范:JSR 303  Bean Validation1.0

 

开发过程:

  1、Bean定义字段校验规则:

  2、Controller引入@Valid(来自)或@Validated(来自org.springframework.validation.annotation)触发校验

  样例如下:

  


背景知识:

1. Hibernate Validator

  定义Bean字段校验的注解和校验器实现

    

  部分注解:

    

  使用方式

    

 

spring-context

  1、build.gradle

    

  2、 定义Bean初始化时,对字段进行校验

         1)定义@Validate注解

      

  2、定义BeanValidationPostProcessor:  在bean初始化时调用 Hibernate Validator进行校验

       

      

spring-boot-starter-validation

   build.gradle定义 

     

 补充

  1、@Valid和@Validate都可触发校验的原理

    org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver

    1)判断是否对应关键字是否存在   

      

    2)触发binder.validate(内部会调用Hibernate Validator)