java springboot2.7 JSR303与Hibernate进行Bean的数据校验

我们如果对数据能进行格式校验 做个安全检查就会容易很多
其实 各个系统中都必然后拥有数据校验,这也不是新东西
J2EE规范中JSR303就规范定义了一组有关数据校验的API

首先 我们在 pom.xml 中 注入依赖

<dependency>
   <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
</dependency>

这里 我们不需要去声明版本 因为 我们项目的配置会自动帮你找到适配的坐标

这是个什么东西呢? 大个比方 JDBC都用过吧? 那么 它是一个接口 我们数据库驱动才是具体的实现类 接口提供了规范 实现方式必须符合规范 而我们这个 也是一个规范

然后 我们可以打开需要数据校验的类 放上 Validated 表示 我们要对他进行数据校验
在这里插入图片描述
但这里 我们只是声明了 要对这个类做字段校验 具体校验谁?怎么校验? 都没有说清楚
比如 我们要设置个最大值不可超过 我们可以 用 validation 中提供的 Max 注解来实现 value是设置最大不能超过多少 message 则表示 如果超过了 给什么样的提示
在这里插入图片描述
同理 我们可以设置最小
在这里插入图片描述
然后 我们先将最小的校验注释掉 然后 运行项目看一下
这里 我们会遇到一个错误 简单说 你这个数据校验的接口 并没有东西去实现它
在这里插入图片描述
这下面它有个我们提示 Hibernate 校验器
在这里插入图片描述
这里还是一样的 在pom.xml中注入依赖

<dependency>
	<groupId>org.hibernate.validator</groupId>
	<artifactId>hibernate-validator</artifactId>
</dependency>

还是不用去纠结它的版本坐标 它会自动帮我们导入适配的 你手动导入 才可能出现版本不适配的情况

注入之后 我们启动项目 就一切正常了
在这里插入图片描述
然后 我们触发逻辑 去拿这个属性类的属性 这里 他是个 负一 那么 肯定是触发不到最大值的
在这里插入图片描述
这里 我们给他来个 9999
在这里插入图片描述
这样 我们启动项目时 他就直接报错了
在这里插入图片描述
这个报错信息 我觉得还是非常厉害的 信息可以说非常全面
告诉我们发生的位置 我们还可以自己写错误信息
其实他的规则还是非常多 全面 这个大家要用数据校验可以去查一查validation 还是非常好用的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/145006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

异常与中断(一)

使用生活实例引入中断 假设有个大房间里面有小房间&#xff0c;婴儿正在睡觉&#xff0c;他的妈妈在外面看书。 问&#xff1a;这个母亲怎么才能知道这个小孩醒&#xff1f; 过一会打开一次房门&#xff0c;看婴儿是否睡醒&#xff0c;然后接着看书一直等到婴儿发出声音以后再…

接口测试用例设计

接口测试 最后感谢每一个认真阅读我文章的人&#xff0c;礼尚往来总是要有的&#xff0c;虽然不是什么很值钱的东西&#xff0c;如果你用得到的话可以直接拿走&#xff1a; 这些资料&#xff0c;对于【软件测试】的朋友来说应该是最全面最完整的备战仓库&#xff0c;这个仓库也…

【论文阅读】(VAE)Auto-Encoding Variational Bayes

论文地址&#xff1a;[1312.6114] Auto-Encoding Variational Bayes (arxiv.org) 【前言】&#xff1a;VAE模型是Kingma(也是Adam的作者)大神在2014年发表的文章&#xff0c;是一篇非常非常经典&#xff0c;且实现非常优雅的生成模型&#xff0c;同时它还为bayes概率图模型难以…

老卫带你学---go语言中context库里propagateCancel函数

go语言中context库里propagateCancel函数 // 设置当父context取消时候&#xff0c;子context也取消的逻辑 func propagateCancel(parent Context, child canceler) {//父context永远不会被取消&#xff08;例如WithValue&#xff09;done : parent.Done()if done nil {return …

SAP:解决函数CONNE_IMPORT_WRONG_COMP_DECS CX_SY_IMPORT_MISMATCH_ERROR错误

用户反馈报表中取数异常&#xff0c;经检查发现SE37执行取数函数ZLY_R_CWFX03报以下错误。 Category ABAP Programming Error Runtime Errors CONNE_IMPORT_WRONG_COMP_DECS Except. CX_SY_IMPORT_MISMATCH_ERROR ABAP Program ZLY_R_CWFX03FT Application Component Not Assig…

爱上C语言:整型和浮点型在内存中的存储(进制转换,原码,反码,补码以及大小端)

&#x1f680; 作者&#xff1a;阿辉不一般 &#x1f680; 你说呢&#xff1a;生活本来沉闷&#xff0c;但跑起来就有风 &#x1f680; 专栏&#xff1a;爱上C语言 &#x1f680;作图工具&#xff1a;draw.io(免费开源的作图网站) 如果觉得文章对你有帮助的话&#xff0c;还请…

spring-cloud 简介

springcloud 定义 1.定义&#xff1a;springcloud为开发人员提供了在分布式系统中快速构建一些通用模式的工具&#xff08;例如配置管理、服务发现、断路器、路由、控制总线等&#xff09;2.微服务:基于单体应用&#xff0c;基于业务进行拆分&#xff0c;每个服务都是独立应用…

μC/OS-II---消息邮箱管理1(os_flag.c)

目录 消息邮箱创建消息邮箱删除等待邮箱中的消息向邮箱发送一则消息 消息邮箱创建 OS_EVENT *OSMboxCreate (void *pmsg) {OS_EVENT *pevent; #if OS_CRITICAL_METHOD 3u /* Allocate storage for CPU status register */OS_CPU_SR cpu_sr …

老师们是怎样发期中考试成绩的?

每次期中考试后&#xff0c;老师们总是忙碌于回答家长和学生咨询成绩。技术发展飞快&#xff0c;发布成绩的方式也在不断进步。如今&#xff0c;已经可以通过各种代码、Excel以及小程序等&#xff0c;让学生和家长自助查询成绩&#xff0c;既安全又方便。 简单来说&#xff0c;…

一分钟搞懂什么是this指针(未涉及静态成员和函数)

前言 我们在学习类的过程中&#xff0c;一定听说过this指针&#xff0c;但是并不知道它跟谁相似&#xff0c;又有什么用途&#xff0c;所以接下来&#xff0c;让我们一起去学习this指针吧&#xff01; 一、this指针的引入 我们先来看下面两段代码&#xff0c;它们输出的是什么&…

Pytorch CUDA CPP简易教程,在Windows上操作

文章目录 前言一、使用的工具二、学习资源分享三、libtorch环境配置1.配置CUDA、nvcc、cudnn2.下载libtorch3.CLion配置libtorch4.CMake Application指定Environment variables5.测试libtorch 四、PyTorch CUDA CPP项目流程1.使用CLion结合torch extension编写可以调用cuda的C代…

DSP生成hex方法

以下使用两种方法生成的HEX文件&#xff0c;亲测可用 &#xff08;1&#xff09;万能法 不管.out文件是哪个版本CCS编译器生成的&#xff0c;只要用HEX2000.exe软件&#xff0c;翻译都可以使用。方法&#xff1a; hex2000 -romwidth 16 -memwidth 16 -i -o 20170817chuankou…

问题 D: 过山车(二分图)

首先&#xff0c;绘制二分图 核心思想&#xff1a; 对于每一个左边端点&#xff0c;查找每个右边端点&#xff0c; 若右边端点无对象&#xff0c;则暂时作为该左端点的对象 若右边端点有对象&#xff0c;递归查询其对象是否有其他选择 &#xff08;1.若有其他选择&#xf…

【Robotframework+python】实现http接口自动化测试

前言 下周即将展开一个http接口测试的需求&#xff0c;刚刚完成的java类接口测试工作中&#xff0c;由于之前犯懒&#xff0c;没有提前搭建好自动化回归测试框架&#xff0c;以至于后期rd每修改一个bug&#xff0c;经常导致之前没有问题的case又产生了bug&#xff0c;所以需要…

MHA的那些事儿

什么是MHA&#xff1f; masterhight availability&#xff1a;基于主库的高可用环境下&#xff0c;主从复制和故障切换 主从的架构 MHA至少要一主两从 出现的目的&#xff1a;解决MySQL的单点故障问题。一旦主库崩溃&#xff0c;MHA可以在0-30s内自动完成故障切换 MHA使用的…

[MySQL] MySQL中的数据类型

在MySQL中&#xff0c;数据类型用于定义表中列的数据的类型。在前面的几篇文章中&#xff0c;我们也会看到有很多的数据类型&#xff0c;例如&#xff1a;char、varchar、date、int等等。本篇文章会对常见的数据类型进行详细讲解。希望会对你有所帮助&#xff01; 文章目录 一、…

海康G5系列(armv7l) heop模式下交叉编译Qt qmqtt demo,出现moc缺少高版本GLibc问题之解决

1.编辑源 sudo vi /etc/apt/sources.list 2.添加高版本的源 deb http://th.archive.ubuntu.com/ubuntu jammy main #添加该行到文件 3.运行升级 sudo apt update sudo apt install libc6 4.strings /**/libc.so.6 |grep GLIBC_ 参考链接&#xff1a;version GLIBC_2.3…

github 私人仓库clone的问题

github 私人仓库clone的问题 公共仓库直接克隆就可以&#xff0c;私人仓库需要权限验证&#xff0c;要先申请token 1、登录到github&#xff0c;点击setting 打开的页面最底下&#xff0c;有一个developer setting 这里申请到token之后&#xff0c;注意要保存起来&#xff…

【Python+requests+unittest+excel】实现接口自动化测试框架

一、框架结构&#xff1a; 工程目录 二、Case文件设计 三、基础包 base3.1 封装get/post请求&#xff08;runmethon.py&#xff09; 1 import requests2 import json3 class RunMethod:4 def post_main(self,url,data,headerNone):5 res None6 if header …

Stable Diffusion新手村-我们一起完成AI绘画

1.工具搭建 感谢bilibili的"秋葉aaaki"大佬出的整合包&#xff0c;让我们方便下载安装一键启动&#xff0c;去它的网盘里下载 我的显卡设备&#xff0c;暂时还够哈&#xff0c;出图速度还可以1-2分钟比较美的质感画面 下载以后需要解压下sd-webui-aki-v4.4.7z&#…