@valid---用好valid,让接口干净

别再混淆了!一文带你搞懂@Valid和@Validated的区别 本文介绍了@Valid注解和@Validated注解的不同,同时也进一步介绍了Springboot 参数校验的使用。 阅读详情

第一种JSR303

在这里插入图片描述

引入

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

实体检查

one 1,2,3 逗号隔开的单个字符串

@NotEmpty(message = "channels can't null or empty")
    @Pattern(regexp = "(?:(\\d|[1-2]\\d|3[0-2])(?:,|$))+", message = "invalid channels")
    @ApiModelProperty(value = "设备通道,1开始.数字表示通道,0表示所有通道。用英文逗号间隔,此时的通道号操作都是对所有通道号一起操作", required = true)
    private String channels;

two 不能为null

@NotNull(message = "streamType can't null")

three 数字范围

@Range(min = 1, max = 32, message = “channels must be 1~32”)

@Range(min = 1, max = 32, message = "channels must be 1~32")
    @ApiModelProperty(value = "数字表示通道,设备通道,1开始", required = true)
    private Long channel;

four 日期

先配置yml

spring:
  jackson:
    default-property-inclusion: non_null
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
    deserialization:
      adjust_dates_to_context_time_zone: true

  @NotNull(message = "endTime can't be null")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间, yyyy-MM-dd HH:mm:ss", required = true)
    private String endTime;
 @Pattern(regexp = "\\d{4}-\\d{2}", message = "`beginDate` must format be `yyyy-MM`")
    @ApiModelProperty(value = "查询的开始日期,格式 yyyy-MM", example = "2019-04")
    private String beginDate;
@Valid接口参数校验怎么做,详细教程 Null:被注释的元素必须为null@NotNull:被注释的元素不能为null@AssertTrue:该字段只能为true@AssertFalse:该字段的值只能为false@Min("value","message"):被注释的元素必须是一个数字,其值必须大于等于指定的最小值@Max("value","message"):被注释的元素必须是一个数字,其值必须小于等于指定的最大值。 阅读详情

相关推荐

纽扣电池供电系统优化:NBM5100A与STM32F745VG组合方案

在低功耗物联网设备设计中,能量管理是核心挑战之一。纽扣电池因其体积小、成本低被广泛采用,但瞬时大电流需求常导致电压骤降和寿命缩短。通过超级电容缓冲技术,可以实现能量的细水长流式存储与集中释放。NBM5100A电源管理IC与STM32F745VG微控制器的组合方案,采用双阶段能量管理架构,先以恒定小电流充电,再通过电容释放大电流。这种方案不仅能提升系统稳定性,还能延长电池寿命3-5倍,特别适合智能门锁、无线传感器等需要间歇性高功率输出的场景。

weixin_29194255的博客 255

javax.validation; @Pattern(regexp='正则表达式')

1、 javax.validation; @Pattern(regexp=‘正则表达式’) 这个注解的意思就是做 ‘正则表达式’ 验证; 如果要时间格式, 则编写时间正则表达式; 如果要验证邮箱,在编写邮箱正则表达式; 时间正则表达式, 可以用java.util.regex.Pattern 表示正则表达式。 ...

jupiter_888的博客 1万+

rv1106 模型部署

ONNX(Open Neural Network Exchange),开放神经网络交换,是一种模型IR,用于在各种深度学习训练和推理框架转换的一个中间表示格式,支持多种深度学习框架,包括 TensorFlow、PyTorch、Caffe 等。将模型转换为 ONNX 格式后,可以更容易地在不同的深度学习框架中进行部署和推理,而无需重新训练模型。

weixin_50993868的博客 1285

java注解校验日期正则表达式

0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$",message = "请检查日期格式是否正确")[0-9]|2[0-3])([0-5][0-9])([0-5][0-9])$",message = "请检查日期格式是否正确")

u014485493的博客 926

第 1 篇:对象池模式 (Object Pool) —— 裸机下的动态内存革命

摘要:嵌入式开发中频繁malloc/free会导致内存碎片和性能问题。对象池模式通过预分配固定大小内存块和位图管理,实现O(1)时间复杂度的内存分配/释放。相比malloc,对象池具有无碎片、确定性执行时间、更低内存开销等优势,尤其适合实时系统。文章详细解析了基于位图的对象池实现原理,包括核心数据结构、高性能索引算法和关键API设计,并对比了空间/时间开销,最后讨论了零拷贝队列、调试水印等进阶用法。该模式能显著提升嵌入式系统的内存使用效率和稳定性。

一路往蓝-Anbo 的博客 424

Flow Matching03-01:微分方程【微分方程(描述变化规律的方程):包含未知函数和它的导数的方程】【公式解(精确)、数值解(逼近)】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 218

报错java.lang.NoSuchFieldError: ADJUST_DATES_TO_CONTEXT_TIME_ZONE

报错截图 关键报错信息===》java.lang.NoSuchFieldError: ADJUST_DATES_TO_CONTEXT_TIME_ZONE 出现这个问题,主要两个包的版本的问题。 我的解决方式是 jackson-annotations 和 jackson-dataType-joda 这两个包版本需要能够互相使用。我这边使用的jackson-annotations-2.8.0 和jackson-dataType-joda-2.8.10 是绝对没问题的。 可以通过源码得知。ja...

qq_38377190的博客 957

29、固态变压器拓扑、设计及其应用深度解析

本文深入解析了固态变压器(SST)的拓扑结构、设计方法及其在智能电网和能源互联网中的应用。重点探讨了机器学习在SST优化设计中的应用,包括中高频变压器设计、整体系统优化与建模研究。文章详细介绍了多端口SST的拓扑特点、功率传输机制及其作为能源路由器的关键作用,分析了不同端口数量下的控制复杂度与应用场景,并通过案例研究展示了四端口SST在分布式能源系统中的实际应用。最后,文章总结了多端口SST面临的技术挑战,并展望了未来在先进控制策略、集成化设计和标准化方面的发展方向。

study的专栏 3790

正则应用之——日期正则表达式

1        概述首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。前几天在优快云多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,写

雁过无痕 24万+

【软考高项论文】论信息系统项目管理的干系人绩效域

例如,在处理与电信运营商合作铺设光纤网络的问题时,考虑到其在通信设施建设和运维方面的专业性和重要性,我们将之定位为高权力高利益的干系人,给予了高度关注和优先沟通。项目全程,我们对干系人绩效域的执行效果进行了定期检查和评估,通过定量与定性的数据收集,确认了项目在干系人管理上的成效,具体表现为:建立了稳固的工作关系网络,使干系人普遍认可项目目标;鉴于本项目牵涉到政府各级部门、企事业单位、市民团体、技术研发伙伴等多种类型的干系人,且干系人的诉求和影响力各异,因此,有序且持续的干系人参与管理显得尤为关键。

Programming Talk 1681

eNSP中玩转Python自动化——解锁网工新姿势(一)

Python自动化一、安装Paramiko模块二、搭建实验环境1、桥接电脑网卡2、配置交换机IP地址交换机配置测试ensp的交换机与电脑的连通性:交换机配置SSHXshell验证三、Python脚本1、执行python脚本2、同步成功 一、安装Paramiko模块 首先安装Python3 然后安装pip解释器 最后安装Paramiko模块 Windows+R打开Cmd,输入命令: pip3 install paramiko 进入python,导入 paramiko模块: import paramiko

LiBai'S BLOG 2万+

@Pattern注解中常用的校验正则表达式札记

1 前端传参要求 项目开发中经常会遇到对用户输入内容的限制,本篇对常用限制做一总结。如图所示,标识字段有严格字符限制,用户输入校验这部分工作前端可以做,当然后端也可以通过在DTO中添加注解的方式实现参数校验。 DTO中代码如下: @Data public class ProjectDTO { @NotBlank(message = "项目名不能为空") private Stri...

Vincent2014Linux 5130

MIKE 21 教程 1.5 基于卫星影像绘制河道边界

上一节讲解了如何输入高程数据与绘制网格本节讲解如何根据卫星影像绘制河道边界。在实际项目中,经常遇到河道图纸缺少的情况,此时可以根据卫星影像进行勾勒绘制。常用的地理信息软件均可完成此功能,这里使用大家较为熟悉的ArcGis进行教学(本文默认大家有基础ArcGis操作知识,如有不懂可留言)。

Hello Word 3282

@Valid的用法详解

@Valid 注解通常用于对象属性字段的规则检测,具体啥意思,下面让我娓娓道来: 下面我们以新增一个员工为功能切入点,以常规写法为背景,慢慢烘托出 @Valid 注解用法详解。 那么,首先,我们会有一个员工对象 Employee,如下 : /** * 员工对象 * * @author sunnyzyq * @since 2019/12/13 */ public class Employee { /** 姓名 */ public String name; /** 年

小小周的博客 8万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

@valid分组校验,手动触发valid校验

同一接口不同操作的时候,校验的字段是不同的。比如更改状态,对于请假申请审批和撤销,校验的字段不同的时候。但是呢,常规的通过@valid的注解是无法满足的(请求的时候参数拦截,触发校验规则)。而我的业务场景必须进行手动触发@valid校验废话不多说,下面直接展示思路与核心相关代码。

lzq2357639195的博客 5196

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

@Valid 注解校验提交的List(list 集合) javax.validation.Valid

遇到需要直接提交一个list集合的接口需求 不想单独在创建个只有一个list集合pojo 那普通的用反就没法校验了 但是在网上搜到了个方法很好用 本来应该贴一下原链接 但是我一时手贱给页面关了 打开的网页太多 又不好找了。在此给参考的大佬谢罪了。 好了 上代码了 创建ValidList 用@Valid注解里面的list import lombok.Data; import javax...

dxiaol的博客 3万+

接口参数检验@Valid & @Validated

@Valid & @Validated 参数校验

qq_33753147的博客 2961

@valid注解

在controller类中添加接口,POST方法中接收设置了@Valid相关注解的实体对象,然后再参数中添加@Valid注解来开启效验功能,需要注意的是,@Valid对Get请求中接收的平面参数请求无效。注解@Valid的主要作用是用于数据校验,可以在定义的实体中的属性上,添加不同的注解来完成不同的校验规则,而在接口类中的接受数据参数中添加@Valid注解,这时实体类会开启一个校验的功能。如果嵌套的实体对象,则需要在最外层属性上添加@Valid注解。return “调用成功”;...

weixin_43400432的博客 1万+

@Valid使用详解

小熙最近看项目,遇到不少之前没有用过的注解,特此查找大佬们的心得记录下,并与大家共享。 @Valid @Valid注解用于校验,所属包为:javax.validation.Valid。 一. 例子: 例子一: 用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。 @...

人生到处知何似,应似飞鸿踏雪泥。 1万+

springboot中@Valid使用

日常接口中,我们需要校验字符串是否为空等操作,需要在接口中使用StringUtils.isBlank(str)之类的方法校验,但 是如果过多的字符串,我们需要些大量的校验代码,代码十分臃肿繁琐无味,现在,我们把这项工作交给spring 去做。使用@Valid去校验。 首先我们使用一个实体类接收接口中传入的参数。 实体类如下: public class ResultInput { /** ...

Jerry-blog 8022

@Valid与@Validated区别

1.@Valid与@Validated作用 @Valid与@Validated都是用来校验接收参数的。 @Valid是使用Hibernate validation的时候使用 @Validated是只用Spring Validator校验机制使用 说明:java的JSR303声明了@Valid这类接口,而Hibernate-validator对其进行了实现。 @Validated与@Valid区别: @Validated:可以用在类型、方法和方法参数上。但是不能用在成员属性(字段)上,不支持

qq_33274797的博客 1万+

@valid 不生效_SpringBoot @Valid 注解结合Exception 实现参数验证

Java大联盟 帮助万千Java学习者持续成长关注作者|超级小豆丁http://www.mydlq.club/article/49/目录一、为什么使用 @Valid 来验证参数二、@Valid 注解的作用三、@Valid 的相关注解四、使用 @Valid 进行参数效验步骤实体类中添加 @Valid 相关注解接口类中添加 @Valid 注解全局异常处理类中处理 @Valid 抛出的异...

weixin_40000430的博客 1679

@Validated和@Valid的用法

所以对于一些简单的校验,可以用注解的方式,这个时候就会用到@Validated或@Valid的注解了,但是这两个注解有什么区别呢?一个待验证的pojo类,其中还包含了待验证的对象,需要在待验证对象上注解@Valid,才能验证待验证对象中的成员属性,这里不能使用@Validated。@Validation对@Valid进行了二次封装,在使用上并没有区别,但在分组、注解位置、嵌套验证等功能上有所不同。@Validated提供分组功能,可以在参数验证时,根据不同的分组采用不同的验证机制。...

loet6010的博客 3530

SpringBoot 中使用 @Valid 注解处理参数校验

@Valid等注解参数校验

糖丸桃桃包的博客 4943

@Valid注解是什么

@Valid 用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。 @RestController @RequestMapping("/user") public class UserController { @PostMapping public User create (@Valid...

Seina 24万+
上一篇: xshell--调整
下一篇: [代码欣赏]-现代主义的java接口观念-exceptionHandler
吧啦蹦吧
博客等级 码龄10年 52粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值