news 2026/6/10 15:35:47

Hibernate-Validate参数校验之校验参数值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hibernate-Validate参数校验之校验参数值

校验对象和校验方法参数都会获取元数据,这里的元数据就是上一节所说的内容,本章节会讲述怎么根据元数据进行参数校验,其实就是根据元数据的MetaConstraint和CascadingMetaData来校验参数值

1、hibernate参数校验的入口

1.1、校验对象

ValidatorImpl的validate方法

1.2、校验方法参数

2、校验对象

3.1、MetaConstraint校验

  • 遍历分组参数,针对每个分组进行校验MetaConstraint

  • 判断当前分组是否是Default分组,因为Default分组缓存了MetaConstraint,如果是Default分组直接可以获取缓存的MetaConstraint,否则需要遍历所有的MetaConstraint,然后判断MetaConstraint是否是当前分组

  • 遍历MetaConstraint校验

  • MetaConstraint校验,需要获取当前字段值,然后校验当前字段值

  • 获取当前字段值是通过valueContext.getValue,这里通过location反射获取字段的值

  • 如果location是FieldConstraintLocation,则通过反射获取字段的值

  • 如果location是TypeArgumentConstraintLocation,则通过最外层的FieldConstraintLocation反射获取字段的值

  • MetaConstraint.validateConstraint,这里判断valueExtractionPath是否为空,如果是空则说明应用在字段上,直接使用validator验证,这里的validator就是校验注解对应的validator,例如@NotEmpty注解对应的validator

  • MetaConstraint.validateConstraint,这里判断valueExtractionPath是否为空,如果不空则说明应用在字段的类型参数上,这个时候就需要使用valueExtractionPath来获取当前校验的值,valueExtractionPath是一个链表结构,会递归获取下一个valueExtractionPath抽取下一层的值,直到valueExtractionPath没有后继的valueExtractionPath

3.2、Cascadable校验

  • 遍历所有Cascadable
  • 获取当前值,getCascadableValue根据Cascadable是字段、参数、返回值获取当前值不一样

  • 这里会递归ContainerCascadingMetaData,ContainerCascadingMetaData会把整个字段的参数类型递归存储,依次遍历每一层ContainerCascadingMetaData
  • 如果当前ContainerCascadingMetaData的cascading是true,则校验当前value;
  • 如果当前ContainerCascadingMetaData有子节点(意思就是说当前节点类型还是参数化类型),则遍历子节点ContainerCascadingMetaData,获取对应的ValueExtractorDescriptor,抽取子节点的值,然后校验子节点的值

3、校验方法参数

校验方法参数和校验对象类似,这里不再细说

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:44:57

ClickHouse 入门指南:大数据分析的高性能利器

ClickHouse 入门指南:大数据分析的高性能利器关键词:ClickHouse、大数据分析、高性能、列式数据库、数据存储摘要:本文旨在为读者提供一份全面的 ClickHouse 入门指南。首先介绍 ClickHouse 的背景知识,包括其目的、适用读者、文档…

作者头像 李华
网站建设 2026/5/31 2:34:39

集体好奇心如何驱动团队目标达成

集体好奇心如何驱动团队目标达成 关键词:集体好奇心、团队目标、驱动机制、创新思维、协作效能 摘要:本文深入探讨了集体好奇心在驱动团队目标达成过程中的重要作用。通过剖析集体好奇心的核心概念、形成机制,阐述了其与团队目标之间的内在联…

作者头像 李华
网站建设 2026/6/10 9:18:19

Hunyuan-MT-7B成本控制:小显存设备上的量化部署方案

Hunyuan-MT-7B成本控制:小显存设备上的量化部署方案 1. 引言:当专业翻译遇上资源限制 想象一下,你手头有一台性能不错的个人电脑,或者一台云端的小型服务器,显存可能只有8GB、12GB,甚至更少。这时候&…

作者头像 李华