avatar

nk

学习 思考 坚持 平静

  • 首页
  • 关于
Home Spring Framewok: Spring 校验
文章

Spring Framewok: Spring 校验

Posted 2024-01-23 Updated 2024-01- 23
By nk
29~38 min read

Spring 校验

Spring 校验的使用场景

  • Spring 常规校验 (Validator)

  • Spring 数据绑定 (DataBinder)

  • Spring Web 参数绑定 (WebDataBinder)

  • Spring MVC/Spring WebFlux 处理方法参数校验

org.springframework.validation.Validator

  • 接口职责

    spring 内部校验接口,通过编程的方式校验目标对象

  • 核心方法

    image-20240122224706799

配套组件

Validator 工具类

org.springframework.validation.ValidationUtils

image-20240122224526078

错误收集器

org.springframework.validation.Errors

org.springframework.validation.Errors

接口设计

  • 接口职责

    数据绑定和数据校验错误信息收集接口,与JavaBean 和其属性有强关联关系

  • 核心方法

    Java Bean 的错误信息描述

    image-20240122225329904

    Java Bean 属性错误信息描述

    image-20240122225404460

  • 配套组件

    org.springframework.validation.ObjectError

    org.springframework.validation.FieldError

文案来源

  • 选择 Errors 实现

    org.springframework.validation.BeanPropertyBindResult

  • 调用 reject 或者rejectObject方法

  • 获取 Errors 对象中的 ObejctError 或者FieldError

  • 将 ObjectError或者FieldError中的code和args,关联MessageResource(org.springframework.context.support.ResourceBundleMessageSource)

image-20240122231412459

image-20240122231432208

自定义实现org.springframework.validation.Validator

  1. 实现 supports

  2. 实现 validate

    • 通过 Errors对象进行错误收集

      • ObjectError

      • FieldError

    • 通过 ObejectError 和FieldError关联MessageSource实现最终文案

code

image-20240122233539874

image-20240122233601287

image-20240122233624418

Spring Validator 的自我救赎

  • org.springframework.validation.beanvalidation.LocalValidatorFactoryBean

  • 依赖 Bean Validation JSR-303 或者 JSR-349

  • Bean 方法参数校验org.springframework.validation.beanvalidation.MethodValidationPostProcessor

    image-20240122234302057

org.springframework.validation.beanvalidation.LocalValidatorFactoryBean

image-20240122235008751

org.springframework.validation.beanvalidation.MethodValidationPostProcessor

面试题: Spring 校验接口是那个

org.springframework.validation.Validator

面试题: Spring 有些核心校验组件

  • org.springframework.validation.Validator

  • 错误收集: org.springframework.validation.Errors

  • Java Bean 错误描述 : org.springframework.validation.ObjectError

  • Java Bean 属性错误描述 : org.springframework.validation.FieldError

  • Bean Validation 的适配

    org.springframework.validation.LocalValidatorFactoryBean

Spring Framework
Spring
License:  CC BY 4.0
Share

Further Reading

Jan 25, 2024

Spring 数据绑定

Spring 数据绑定 Spring 数据绑定有那些使用场景 Spring BeanDefinition 创建 Bean 实例

Jan 23, 2024

Spring Framewok: Spring 校验

Spring 校验 Spring 校验的使用场景 Spring 常规校验 (Validator) Spring 数据绑定 (DataBinder) Spring Web 参数绑定 (WebDataBinder)

OLDER

KonBAI-Qruoyi-flowable-plus 初步简略体验报告

NEWER

Spring 数据绑定

Recently Updated

  • 拥抱云原生:Dockerfile 的多阶段构建
  • 拥抱云原生:Dockerfile
  • 拥抱云原生:Docker文件系统
  • 拥抱云原生:Docker 指令小析
  • 拥抱云原生:起始

Trending Tags

Nginx 工作报告 云计算 云原生 Alpine Linux Docker Spring Linux 面试智慧

Contents

©2025 nk. Some rights reserved.

Using the Halo theme Chirpy