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 还是非常好用的

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringEvent事件通知机制

“Spring Event” 是 Spring 框架通过事件驱动的编程模型来处理应用程序中的事件。开发者可以定义自己的事件&#xff0c;然后在应用程序中触发这些事件。Spring 框架提供了用于发布和监听事件的机制&#xff0c;以实现松散耦合的组件间通信。 有两个核心组件&#xff1a; 事…

PostGIS学习教程五:简单的SQL语句

SQL&#xff0c;或"Structured Query Language-结构化查询语言"&#xff0c;是对关系数据库进行查询数据和更新数据的一种方法。 当我们创建第一个数据库时&#xff0c;你已经看到了SQL&#xff1a; SELECT postgis_full_version();查看PostGIS的版本信息。 在前面的…

应届裁员,天胡开局——谈谈我的前端一年经历

应届裁员&#xff0c;天胡开局——谈谈我的前端一年经历 许久没有更新了&#xff0c;最近一个月都在忙&#xff0c;没错&#xff0c;正如题目所说&#xff0c;裁员然后找工作… 这周刚重新上班&#xff0c;工作第二天&#xff0c;感慨良多&#xff0c;记录些什么吧。 去年十…

基于springboot实现学生选课平台管理系统项目【项目源码】计算机毕业设计

基于springboot实现学生选课平台管理系统演示 系统开发平台 在该地方废物回收机构管理系统中&#xff0c;Eclipse能给用户提供更多的方便&#xff0c;其特点一是方便学习&#xff0c;方便快捷&#xff1b;二是有非常大的信息储存量&#xff0c;主要功能是用在对数据库中查询和…

Outlook如何恢复已删除邮件

Outlook如何恢复已删除邮件 操作指引&#xff1a; Outlook客户端恢复最近7天删除的邮件&#xff1a; Outlook客户端要求最新版本&#xff0c;如没有如下选项&#xff0c;建议联机更新windows update 网页邮箱恢复最近7天删除的邮件&#xff1a;

MySQL 社区开源备份工具 Xtrabackup 详解

文章目录 前言1. Xtrabackup 介绍1.1 物理备份与逻辑备份区别1.2 Xtrabackup 系列版本 2. Xtrabackup 部署2.1 下载安装包2.2 二进制部署2.3 程序文件介绍2.4 备份需要的权限 3. Xtrabackup 使用场景3.1 本地全量备份3.2 本地压缩备份3.3 全量流式备份3.3.1 备份到远程主机3.3.…

0基础学习PyFlink——水位线(watermark)触发计算

在《0基础学习PyFlink——个数滚动窗口(Tumbling Count Windows)》和《0基础学习PyFlink——个数滑动窗口&#xff08;Sliding Count Windows&#xff09;》中&#xff0c;我们发现如果窗口中元素个数没有把窗口填满&#xff0c;则不会触发计算。 为了解决长期不计算的问题&a…

Interactive Analysis of CNN Robustness

Interactive Analysis of CNN Robustness----《CNN鲁棒性的交互分析》 摘要 虽然卷积神经网络&#xff08;CNN&#xff09;作为图像相关任务的最先进模型被广泛采用&#xff0c;但它们的预测往往对小的输入扰动高度敏感&#xff0c;而人类视觉对此具有鲁棒性。本文介绍了 Pert…

微信小程序display常用属性和子元素排列方式介绍

wxss中display常用显示属性与css一致&#xff0c;介绍如下&#xff1a; 针对元素本身显示的属性&#xff1a; displayblock&#xff0c;元素显示换行displayinline&#xff0c;元素显示换行&#xff0c;但不可设置固定的宽度和高度&#xff0c;也不可设置上下方向的margin和p…

Python | 机器学习之聚类算法

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《人工智能奇遇记》&#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 目录结构 1. 机器学习之聚类算法概念 1.1 机器学习 1.2 聚类算法 2. 聚类算法 2.1 实验目的…

Riskified: 2023年电商政策滥用问题恶化,正严重挑战商家盈利底线

2023年11月14日&#xff0c;中国上海 —— 近日&#xff0c;由全球领先的电子商务欺诈和风险智能解决方案提供商 Riskified 发布的《政策滥用及其对商家的影响&#xff1a;2023年全球参考基准》报告显示&#xff0c;政策滥用问题正进一步恶化&#xff0c;超过九成电商商家正在承…

七个优秀微服务跟踪工具

随着微服务架构复杂性的增加&#xff0c;在问题出现时确定问题的根本原因变得更具挑战性。日志和指标为我们提供了有用的信息&#xff0c;但并不能提供系统的完整概况。这就是跟踪的用武之地。通过跟踪&#xff0c;开发人员可以监控微服务之间的请求进度&#xff0c;从而使他们…

WebSocket真实项目总结

websocket websocket是什么? websocket是一种网络通讯协议。 websocket 是HTML5开始提供的一种在单个TCP链接上进行全双工通讯的协议。 为什么需要websocket? 初次接触websocket&#xff0c;都会带着疑惑去学习&#xff0c;既然已经有了HTTP协议&#xff0c;为什么还需要另一…

【数据结构】——单链表(增删查改)

目录 前言&#xff1a; 一&#xff1a;单链表的特点 ​编辑 二&#xff1a;单链表实现 单链表定义 2.1申请节点&#xff08;初始化&#xff09; 2.2单链表尾插 ​编辑 2.3单链表打印 2.4单链表头插 2.5单链表尾删 2.6单链表头删 2.7单链表查找 2.8在目标位置后面插入…

通用结构化剪枝DepGraph

文章目录 0. 前言一. 第一部分: Torch-Pruning1.1 传统的剪枝流程 - ResNet-18结构化剪枝1.2 Torch-Pruning剪枝 - ResNet-18结构化剪枝1.3 Torch-Pruning剪枝 - 遍历所有分组1.4 Torch-Pruning剪枝 - 剪枝器 High-level Pruners1.5 Torch-Pruning剪枝 - 拓展到更复杂的神经网…

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于入侵杂草优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

Python机器学习、深度学习提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;能够在不同操作系统和平台使用&#xff0c;简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库&#xff0c;还有丰富的第三方库&#xff0c;Python在数据处理、科学计算、数学建模、数据挖…

【Apifox】国产测试工具雄起

在开发过程中&#xff0c;我们总是避免不了进行接口的测试&#xff0c; 而相比手动敲测试代码&#xff0c;使用测试工具进行测试更为便捷&#xff0c;高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman&#xff0c;他还拥有一个非常nb的功能&#xff0c; 在接…

vue-组件通信(动态组件)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-组件通信|动态组件 目录 组件通信 1.父传子 2.子传父 3.ref 4.兄弟组件 5.跨层级 provid…

Xilinx Zynq 7000系列中端FPGA解码MIPI视频,基于MIPI CSI-2 RX Subsystem架构实现,提供5套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX SubsystemSensor Demosaic图像格式转换Gammer LUT伽马校正VDMA图像缓存AXI4-Stream toVideo OutHDMI输出 5、…