当前位置: 代码网 > it编程>编程语言>Java > SpringBoot使用@Validated处理校验的方法步骤

SpringBoot使用@Validated处理校验的方法步骤

2024年08月13日 Java 我要评论
前言@validated 注解的主要目的是启用和利用 spring 的验证框架,它可以用于类上也可以用于方法参数上。用于类上时,表示该类中的所有方法参数都需要通过验证框架进行验证;用于方法参数上时,则

前言

@validated 注解的主要目的是启用和利用 spring 的验证框架,它可以用于类上也可以用于方法参数上。用于类上时,表示该类中的所有方法参数都需要通过验证框架进行验证;用于方法参数上时,则仅表示该参数需要被验证。选择哪种方式取决于具体的业务需求和个人偏好。

步骤

1、引入依赖,这是 spring 用来实现数据验证的基础库

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-validation</artifactid>
</dependency>

2、然后我们将注解@validated放在类上开启验证功能,将注解@valid放在参数实体上代表对实体进行校验,例如

@restcontroller
@requestmapping("/test")
@validated
public class testcontroller {
    @postmapping()
    public r test(@valid @requestbody testdto dto){
        return r.ok("响应成功");
    }
}

3、然后我们在请求体中随时用如下 注解即可通过框架自动进行验证,我这里是使用统一异常捕捉进行全局异常情况拦截,有关统一异常封装,大家可以关注我看我另一篇文章。

统一的参数异常捕捉

/**
	 *处理参数校验异常
	 * @param e
	 * @return
	 */
	@exceptionhandler
	public r handlerexception(methodargumentnotvalidexception e) {
		e.printstacktrace();
		bindingresult bindingresult = e.getbindingresult();
		return r.fail(bindingresult.getfielderrors().get(0).getdefaultmessage());
	}

参数实体

import lombok.data;
import javax.validation.constraints.notblank;
import javax.validation.constraints.notnull;
import javax.validation.constraints.size;
@data
public class testdto {
    @notblank(message = "a参数不能为空")
    private string a;
    @notnull(message = "b参数不能为null")
    private string b;
    @max(value = 10,message = "请输入正确的范围")
    private integer c;
}

4、通过apifox工具调用测试结果如下

5、以下是常用的注解说明

注解类型说明
@nullobject校验必须为null
@notnullobject校验必须不能是null,并且必须有一个非空格字符
@notempty字符串、集合、映射等类型值不为空(即不为 null 且不为空字符串、空集合或空映射)。
@asserttrueboolean、boolean参数需要为true,传null允许通过,注意,当传了0时会认为是false不通过
@assertfalseboolean、boolean参数需要为true,传null允许通过,注意,当传了0时会认为是false允许通过
@maxbigdecimal、biginteger,基本数字类型及其包装类等允许的最大值,null允许通过
@minbigdecimal、biginteger,基本数字类型及其包装类等允许的最小值,null允许通过
@negativebigdecimal、biginteger,基本数字类型及其包装类等数字类型的值必须小于零,null允许通过
@negativebigdecimal、biginteger,基本数字类型及其包装类等数字类型的值必须小于等于零,null允许通过
@positivebigdecimal、biginteger,基本数字类型及其包装类等数字类型的值必须大于零,null允许通过
@positiveorzerobigdecimal、biginteger,基本数字类型及其包装类等数字类型的值必须大于等于零,null允许通过
@digits(integer = 10, fraction = 2)字符串、bigdecimal、biginteger,基本数字类型及其包装类等整数位数和小数位数限制,null允许通过
@pattern字符串正则表达式匹配,null允许通过
@email字符串字符串邮箱格式校验,null允许通过
@size字符串、集合、映射等类校验大小的范围,null允许通过,如 @size(min = 1, max = 3, message = “最大范围为1-3”)

到此这篇关于springboot使用@validated处理校验的方法步骤的文章就介绍到这了,更多相关springboot @validated处理校验内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com