Spring Boot MVC 参数校验

Spring Boot Validate

Spring Boot 支持JSR303/JSR349验证框架,通过注解实现对参数的校验,并将校验结果封装成BindingResult对象。

常用注解

下面的表格列出常用校验类及主要功能。这些注解必须配合@Valid或@Validated使用,通过这两个注解开启校验。

检查类型 注解 说明
空检查 @Null 验证对象为null
@NotNull 验证对象不为null
@NotEmpty 验证对象不为null、且长度>0
@NotBlank 验证字符串不为null、且最少有一个非空格字符
长度检查 @Size(min,max) 验证对象长度
@Length(min,max) 验证字符串长度
数值检查 @Min(value) 验证数字>=value
@Max(value) 验证数字<=value
@Digits(integer,fraction) 验证数字格式
@Range(min,max) 验证数字是否符合[min,max]
正则检查 @Pattern(regexp) 验证字符串是否符合正则表达式
@Email 验证是否邮箱格式

注 :对于长度的校验基本都支持字符串、集合、Map、数组的长度。

下面是@Valid和@Validated的区别。

@Valid @Validated
分组校验 不支持 支持
使用范围 方法、属性、构造方法、参数 类、方法、参数
嵌套验证 支持 不支持

注 :嵌套验证。JavaBean a中某个属性类型是JavaBean b,对a进行验证的同时验证b。

使用说明

基本使用

以新增用户为例

新建User类,为name属性添加@NotBlank注解

@Data
class User {
    
	private Integer id;
	@NotBlank
	private String name;
}

新增新建用户接口,添加@Validated注解开启user参数校验

@RestController
@RequestMapping("/validate")
public class ValidateController {
    
	@RequestMapping("/addUser")
	public Integer addUser(@Validated User user) {
    
		// 假设插入数据库后,生成id为89757
		user.setId(89757);
		// 插入成功后返回id
		return user.getId();
	}
}

启动服务,测试代码

浏览器输入 :http://localhost:8080/validate/addUser
由于name是null,校验不通过,返回错误

浏览器输入 :http://localhost:8080/validate/addUser?name=ly
校验通过,返回89757

实现分组校验

同一个JavaBean在不同的场景可能需要不用的校验规则,例如:添加用户时id必须是null,修改用户时id不能是null。每一个校验注解都有group属性,通过group属性可以实现不同方法采用不同的校验规则。以新建用户为例

修改User类,添加并指定校验组

@Data
class User {
    
	
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值