Spring-Boot 中的@Valid注解和BindingResult

本文介绍了Spring-Boot中@Valid注解的作用,用于数据校验,配合实体或DTO中的校验规则。同时,详细阐述了BindingResult对象的用途,它与@Valid结合使用,处理校验后的异常。@Valid不支持GET请求的平面参数校验,主要应用于POST请求的DTO对象校验,当校验失败时,会触发全局异常处理器。

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

一、@Valid注解的作用

主要是用于数据校验,在实体或者DTO中定义不同的属性,来完成不同的校验规则,然后在Controller类中接收数据的参数前钱夹@Valid注解,那么接收过来的数据就会开启校验功能。

二、@Valid相关注解

在这里插入图片描述

三、BindingResult

bindingResult是和@Valid配合使用,跟在被校验对象之后,
1.如果没写bindingResult,就会排出BindException;
2.如果没写@Valid,bindingResult就接受不到异常。
注意: 不能使用bindingResult来接受String等简单对象的错误信息,简单对象校验失败会抛出ConstraintViolationException。

四、@Valid校验的流程

@Valid不支持平面的参数校验(直接用@PathVariable或@RequestParam接受的参数),所以对GET请求的参数还是按照正常的方式来校验,而POST则将DTO对象为参数,用@Valid方式校验。校验通过进入业务逻辑层,否则抛出异常,由全局异常处理器来处理。

1.DTO类


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值