【Spring Boot】Bean字段校验-JSR303

参考:

  https://cloud.tencent.com/developer/article/1790411  实现了国际化的参数校验

开发过程:

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

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

  样例如下:

  

  或

国际化校验提示

  


背景知识: 

  

1. Bean Validation 规范:

   JSR-303 1.0

   JSR 349 1.1 

   JSR 380 2.0  

2.  Hibernate Validator

  实现Bean Validation规范

    

  部分注解:

    

  使用方式

    

3. spring-context

  Spring validation对hibernate-validation进行了二次封装,显示校验validated bean时,你可以使用Spring validation或者hibernate validation。

  spring validation另一个特性,便是在springmvc模块中添加了自动检验,并将校验信息封装进了特定的类中,位于org.springframework.validation包下。
  1、build.gradle

    

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

         1)定义@Validate注解

      

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

       

      

4. spring-boot-starter-validation

   build.gradle定义 

     

 补充

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

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

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

      

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

posted @ 2023-08-19 15:45  飞翔在天  阅读(38)  评论(0编辑  收藏  举报