spring-boot-starter-validation - 实际开发常见使用归纳

本文介绍了SpringBoot项目中如何使用依赖并详细解释了@Validated和@Valid注解在参数校验中的应用,以及javax.validation.constraints提供的常用校验注解的正确用法。特别强调了对年龄等字段进行非空和范围检查的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、依赖

二、常用注解说明

2.1、参数校验注解 

2.2、javax.validation.constraints 提供的校验注解


一、依赖


 父依赖即为 spring boot 

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

二、常用注解说明


2.1、参数校验注解 

参数校验主要使用以下两个注解:

a)@Validated 一般用于在 Api 类上标注,那么在 Api 类下的方法参数中,使用 javax.validation.constraints 提供的注解生效.

满足条件时,引发异常:ConstraintViolationException.class

b)@Valid 注解一般有两个作用

第一,在方法的参数中标注对象,那么该对象使用 javax.validation.constraints 提供的注解生效

第二,嵌套参数,例如 UserInfo 类中的成员变量有一个 Avatar 对象,并且 Avatar 的成员变量也被 javax.validation.constraints 提供的注解标记,此时就需要在 Avatar 对象上标注 @Valid 注解,否则 Avatar 对象中的注解不生效.

满足条件时,引发异常:MethodArgumentNotValidException.class

2.2、javax.validation.constraints 提供的校验注解

javax.validation.constraints 提供的注解如下:

这里使用上大家可能有一个误区:UserInfo 中有一个字段 age 不能为空,并且需要小于 100.  此时,有人可能只使用了 @Max(100),以为这里隐含了一个不为空的含义,实则不然,还是因该老老实实如下写法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈亦康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值