当前位置: 首页 > news >正文

SpringBoot中如何在服务器进行校验?

数据校验就是数据的合法性检查,在服务器端也可以对数据进行校验,一般使用JSR303 校验

  • JSR303是Java为Bean数据合法性校验提供的标准框架,是一种声明式校验

  • JSR303通过在Bean属性上标注类似于@NotNull、@Max等注解来指定校验规则,并通过标准的验证接口对Bean进行验证

注解功能
@Null必须为null
@NotNull不能为null
@NotBlank字符串不能为null,且长度大于 0,会去掉前后空格
@Max(value)数字必须小于等于指定值
@Min(value)数字必须大于等于指定值
@Size(min,max)长度必须在指定的范围内(可以是字符串、数组、集合等)
@Past时间必须是过去的时间
@Future时间必须是将来的时间
@Pattern必须符合指定的正则表达式

JSR303的扩展: Hibernate Validator扩展注解

  • Hibernate Validator是JSR303的一个参考实现,除支持所有标准的校验注解外,它还支持以下的扩展注解

注解功能
@Length(min,max)字符串长度必须在指定范围之间
@NotEmpty字符串不能为空
@Email必须是合法的邮箱
@Range(min,max,message)数值必须在指定的范围内
5.2 基本用法

步骤:

  • 添加依赖

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
  • 在Bean上添加校验注解

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {private Integer id;
​@NotBlank(message = "用户名不能为空")private String username;
​@NotBlank(message = "密码不能为空")@Length(min = 6,max = 12,message = "密码长度必须在6~12之间")private String password;
​@Range(min = 18,max = 30,message = "年龄只能在18~30之间")private int age;
​@NotNull(message = "生日不能为空")@Past(message = "生日必须是过去的时间")@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")@DateTimeFormat(pattern = "yyyy-MM-dd")private Date birthday;
}
  • 在方法形参前添加@Valid注解
@RestController
public class AjaxController {@RequestMapping("/addUser")public String addUser(@Valid User user){ // @Valid 开启对User对象的数据校验System.out.println(user);return "success";}
​
}

相关文章:

SpringBoot中如何在服务器进行校验?

数据校验就是数据的合法性检查&#xff0c;在服务器端也可以对数据进行校验&#xff0c;一般使用JSR303 校验 JSR303是Java为Bean数据合法性校验提供的标准框架&#xff0c;是一种声明式校验 JSR303通过在Bean属性上标注类似于NotNull、Max等注解来指定校验规则&#xff0c;并…...

element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入

解决方案&#xff1a; 我是form表单嵌套表格&#xff0c;里面的el-input输入框&#xff0c;输入第一个值的时候会突然失去焦点&#xff0c;需要再次点击输入框才能正常输入&#xff0c;原因是table的key值&#xff0c;需要改成正常的index即可&#xff0c;如果你是循环的&…...

【绝地求生game】

编写一个完整的《绝地求生》这样的游戏程序代码是一个庞大的工程&#xff0c;涉及到成千上万行的代码和复杂的多模块协作。在这里&#xff0c;我可以提供一个非常简化的示例&#xff0c;用于演示游戏编程中可能用到的基本概念&#xff0c;比如玩家移动、基本物理和简单的游戏逻…...

Mac上Steam安装的游戏已经卸载,但游戏的快捷方式图标仍存在的解决方式

打开终端&#xff0c;输入以下内容&#xff0c;回车。 open ~/Applications 在弹出的窗口中&#xff0c;会列出对应的快捷方式&#xff0c;按需删除即可。 实际上打开的是 /Users/改为你的用户名/Applications 文件夹下的内容。因此也可以通过打开访达&#xff08;Finder&am…...

PTA 判断两个矩阵相等

Peter得到两个n行m列矩阵&#xff0c;她想知道两个矩阵是否相等&#xff0c;请你用“Yes”&#xff0c;“No”回答她&#xff08;两个矩阵相等指的是两个矩阵对应元素都相等&#xff09;。 输入格式: 第一行输入整数n和m&#xff0c;表示两个矩阵的行与列&#xff0c;用空格隔…...

《征服数据结构》双向链表

摘要&#xff1a; 1&#xff0c;双链表的介绍 2&#xff0c;双链表的用途 3&#xff0c;双链表的节点插入和删除 1&#xff0c;双链表的介绍 前面我们讲过单链表&#xff0c;单链表的特点就是只能往后访问不能往前访问。单链表一般在面试中用的比较多&#xff0c;比如删除倒数第…...

我用 Midjourney 的这种风格治愈了强迫症

在 Midjourney 能够实现的各种布局之中&#xff0c;有两种风格因其简洁、有序而独居魅力&#xff0c;它们就是平铺 (Flat Lay) 和 Knolling (Knolling 就是 Knolling, 无法翻译&#x1f923;)。要在现实生活中实现这样的美学效果并不容易&#xff0c;你需要精心挑选各种小物件&…...

三维大场景管理-3Dtiles规范

简介 &#xff1a; 这篇文章都是三年前写的了&#xff0c;一直在笔记库存中&#xff0c;今天把他放出来。主要是讲Cesium 的3Dtiles 格式&#xff0c;当然3Dtiles主要是解决场景管理大场景的LOD实现的问题&#xff0c;不管是剔除渲染性能优化之Culling 剔除或者 LOD 、3Dtiles…...

Flutter 中的 FractionalTranslation 小部件:全面指南

Flutter 中的 FractionalTranslation 小部件&#xff1a;全面指南 在 Flutter 的丰富布局库中&#xff0c;FractionalTranslation 是一个允许你将子组件沿着一个轴或两个轴进行部分平移的动画小部件。这种类型的平移通常用于创建滑动效果&#xff0c;如卡片的滑动删除或滑动展…...

Thrift快速入门开发demo

Thrift快速入门开发demo 一、认识Thrift thrift是什么?一个RPC 代码生成框架,使用它的IDL(Interface Defination Language,接口定义语言)定义你想要实现的接口,然后它就会生成对应语言的远程调用框架代码,用户只需要实现接口逻辑,不用关心具体的细节。 tutorial:htt…...

关于C++智能指针复习总结

RAII(Resource Acquisition Is Initialization): 资源获得即初始化 利用对象生命周期来控制程序的资源(将资源交给对象处理) 智能指针利用了该思想 将资源交给一个对象, 初始化资源(可以是指针或者等等资源), 释放交给析构函数 因为析构函数无论是什么场景, 对象销毁时一定会…...

Prometheus Operator创建告警规则并接入钉钉报警

prometheus之钉钉报警 前言1. 添加prometheus报警规则1.2 添加自定义报警规则文件 2. 配置钉钉报警2.2 部署dingding插件 3. 编写alertmanager配置文件 前言 在kubenetes上安装了kube-promethues&#xff08;包含Prometheus Operator&#xff09;,程序正常跑起来了&#xff0c…...

Word整理论文参考文献

1.安装Zotero软件 2.安装Zotero的Chrome网站插件&#xff0c;并将插件固定到浏览器 3.安装Word的Zotero插件 4.在DBLP网站https://dblp.org/search 搜索需要添加的参考文献->点击BibTex->点击网页右上角的Zotero符号&#xff08;即第二步所指的符号&#xff09;->至…...

计算机网路概述

目录 计算机网络的概念 计算机网络的定义&#xff1a; 计算机网络的组成&#xff1a; 终端系统/资源子网 通信子网 计算机网络的类型 按照拓扑分类​编辑 按照范国分类&#xff1a; 按传输方式进行分类 计算机网络体系结构 传输方式 按照传输方向区分 按照传输对象…...

832. 翻转图像 - 力扣

1. 题目 给定一个 n x n 的二进制矩阵 image &#xff0c;先 水平 翻转图像&#xff0c;然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转&#xff0c;即逆序。 例如&#xff0c;水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转图片的意思是图片中的 0 全部被…...

mumu 模拟器安装

1.下载安装 下载地址 Win 历史版本&#xff1a;http://mumu.163.com/update/win/Mac 历史 版本&#xff1a;http://mumu.163.com/20200515/25905_880858.html 2.设置为竖屏 在设置中心--界面设置页面设置宽720&#xff0c;高1280&#xff0c;DPI为240&#xff0c;如下图所示。…...

opencv实现图片的膨胀腐蚀

opencv实现图片的膨胀腐蚀 在OpenCV中&#xff0c;膨胀和腐蚀是两种基本的图像处理操作&#xff0c;通常用于二值图像中以提取特定的特征。它们是基于图像的形态学操作&#xff0c;使用一个称为结构元素或核的模板来改变图像的形状。 下面是如何使用OpenCV实现图片的膨胀和腐…...

[AIGC] Java常用的JSON库及简单示例

Java常用的JSON库及简单示例 在Java的世界里&#xff0c;JSON库广泛用于日常开发工作&#xff0c;本文将介绍几个常用的JSON库并配以简单的示例代码。 1. Gson Gson是Google提供的一个用来在Java对象和JSON数据之间进行转换的Java库。 它有一定的学习曲线&#xff0c;但一旦熟…...

Linux shell编程学习笔记50:who命令

0 前言 2024年的网络安全检查又开始了&#xff0c;对于使用基于Linux的国产电脑&#xff0c;我们可以编写一个脚本来收集系统的有关信息。比如&#xff0c;我们可以使用who命令来收集当前已登陆系统的用户信息&#xff0c;当前运行级别等信息。 1. who命令 的功能、格式和选项…...

vue使用webscoket

1. 创建 WebSocket 连接 首先&#xff0c;你需要在你的 Vue 组件中创建一个 WebSocket 连接。通常&#xff0c;这会在组件的 created 或 mounted 生命周期钩子中完成。 created() {this.socket new WebSocket(wss://your-websocket-url);this.socket.onopen () > {conso…...

信奥赛C++提高组csp-s高频考点知识详解

信奥赛C提高组csp-s高频考点知识详解 高频考点&#xff1a;并查集、最小生成树、拓扑排序、欧拉回路、强连通分量、二分图、Dijkstra、Floyd、Bellman-Ford、SPFA、树状数组、线段树、哈希、哈希表、离散化、KMP、Trie字典树、AC自动机、单调栈、单调队列、快速幂、倍增算法、反…...

IT自动化运维平台建设解决方案:三阶段演进思路、平台架构与核心能力、关键功能模块、典型自动化场景与执行流程

该方案提出从人工运维向自动化、智能化演进&#xff0c;核心是通过统一平台整合Zabbix监控、脚本管理与工单系统&#xff0c;实现告警自动治愈与周期性任务自动化执行。方案采用分批推进策略&#xff0c;旨在提升效率、保障业务连续性并降低人为风险&#xff0c;最终落地智能化…...

政府科技管理部门如何优化区域科技创新治理?

观点作者&#xff1a;科易网-国家科技成果转化&#xff08;厦门&#xff09;示范基地 摘要 在数智时代背景下&#xff0c;区域科技创新治理的复杂性显著提升&#xff0c;传统治理模式面临资源分散、服务碎片化、匹配效率低等核心痛点。政府科技管理部门亟需借助“数智产品共享…...

SEO_如何通过内容SEO获取稳定流量的关键方法

SEO:如何通过内容SEO获取稳定流量的关键方法 在当今数字化时代&#xff0c;如何通过内容SEO获取稳定流量成为了许多企业和网站运营者关注的焦点。内容SEO不仅能够提升网站的自然搜索排名&#xff0c;还能为网站带来长期的、可持续的流量。具体应该如何通过内容SEO获取稳定流量…...

赋能智能体大脑:在快马平台中集成AI模型实现高级对话能力

在探索AI辅助开发的过程中&#xff0c;我发现智能体的核心能力很大程度上取决于其"大脑"——也就是背后支撑决策的AI模型。最近在InsCode(快马)平台实践了一个很有意思的项目&#xff1a;如何为智能体集成AI模型来实现高级对话功能。整个过程让我深刻体会到&#xff…...

Windows下OpenClaw安装详解:对接Kimi-VL-A3B-Thinking图文模型

Windows下OpenClaw安装详解&#xff1a;对接Kimi-VL-A3B-Thinking图文模型 1. 为什么选择OpenClaw与Kimi-VL-A3B-Thinking组合 去年我在处理大量图文资料归档时&#xff0c;发现手动整理效率极低。直到尝试将OpenClaw与Kimi-VL-A3B-Thinking模型对接后&#xff0c;才真正实现…...

温度场与锂枝晶生长的相场电势场及浓度场耦合仿真研究

comsol 锂枝晶仿真——耦合温度场 在相场&#xff0c;电势场和浓度场的基础上耦合了温度场&#xff0c;可以看不同温度对锂枝晶的影响指尖的金属晶体在电解液中野蛮生长&#xff0c;就像寒冬玻璃上的冰花。当我们盯着显微镜观察锂枝晶时&#xff0c;常忽略了一个重要变量——温…...

手把手教你用ESP32-S3开发智能语音设备:麦克风选型+WAV录音全流程

ESP32-S3智能语音设备开发实战&#xff1a;从麦克风选型到WAV录音全流程解析 1. 智能语音设备开发的核心挑战与ESP32-S3解决方案 在智能家居和物联网设备爆发式增长的今天&#xff0c;语音交互已成为人机交互的重要方式。然而&#xff0c;开发一款高性能的智能语音设备并非易…...

OriginPro 2023保姆级教程:三步搞定柱状图+点线图组合,让你的科研图表颜值飙升

OriginPro 2023科研图表优化实战&#xff1a;从基础绘图到期刊级组合图表 科研图表是学术论文的"门面"&#xff0c;一张精心设计的图表往往能让审稿人和读者眼前一亮。OriginPro作为科研绘图领域的标杆工具&#xff0c;其2023版本在图表组合和视觉优化方面带来了诸多…...

SharpSCADA项目实战:基于样例工程构建完整物料接收生产线

SharpSCADA项目实战&#xff1a;基于样例工程构建完整物料接收生产线 【免费下载链接】SharpSCADA C# SCADA 项目地址: https://gitcode.com/gh_mirrors/sh/SharpSCADA 想要快速掌握工业自动化SCADA系统的开发吗&#xff1f;SharpSCADA项目为你提供了一个完美的起点&…...