boot spring 对参数检测_springboot 各种参数校验

1,小结 :springboot 各种参数校验 ,一般除了前端校验外,后台对接口 也要做强制参数校验(出于接口安全和参数格式不正确 考虑),规范考虑 一般对外提供的接口 或者 给别人调用 的公用方法(如工具类) 必须要求 强制参数校验

1.1,常规校验

237c5d0b1f34d98fa6ad9dd40b600933.png

ac4bdda2259741f54ec677421f76c832.png

422592ede00e31f21591301e53323ede.png

1.2 ,分组校验 @Valid 注解是java javax.validation 包下面 不支持 分组 spring 在其基础上扩展 了 组 校验 @Validated

c288d7c09261147fd925f74c6fb1e8b4.png

1.3,一般比较复杂的校验 有可能在 web 不好处理 需要各种判断 后校验 这样可以使用 其提供的工具类 在service 层 提供校验

8ce0aab946ad61a6d741cadba6b5b070.png

1.4 嵌套校验 一般复杂的结构 嵌套了 对象嵌套了 list 对list 对应字段 校验

776326e30c806f58b805e73cee41494a.png

1.5. 自定义校验,当提供的很多注解无法满足 要求时 可以考虑自定义注解

4755dd1777508c808ee3d9bf4b070496.png

1.6 简单校验单个参数 springmvc 需要配置

6651b3ef96673abe1eaa4d1992ed79df.png

d5dea0fb3ab82b42d64a1add47a1538c.png

全局异常处理

c3df3a731b27985b4ea44780fb2560c0.png

总结:基本平时用的 注解 如下,用法 基本常用的就上面那些了 代码 具体实现 https://gitee.com/www.lyc.com/lyc-demo.git可以参考 我的代码库 整理不易 记得 star 小伙伴们

Bean Validation 中内置的 constraint

@Null 被注释的元素必须为 null

@NotNull 被注释的元素必须不为 null

@AssertTrue 被注释的元素必须为 true

@AssertFalse 被注释的元素必须为 false

@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@Size(max=, min=) 被注释的元素的大小必须在指定的范围内

@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内

@Past 被注释的元素必须是一个过去的日期

@Future 被注释的元素必须是一个将来的日期

@Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式

Hibernate Validator 附加的 constraint

@NotBlank(message =) 验证字符串非null,且长度必须大于0

@Email 被注释的元素必须是电子邮箱地址

@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内

@NotEmpty 被注释的字符串的必须非空

@Range(min=,max=,message=) 被注释的元素必须在合适的范围内

补充的对象类型

dd0ca635c023e7e23f5ece86210631ea.png

补充: userList 必须 加 @Valid 不然校验不生效

d9bd3a73744715f84624f15a4311dc86.png

b3923fb4c33796b175203b3a4fe02799.png

6190c0f9d1c0d031c7eb5cf8c5059fa7.png

集合类型

必须 @Valid

@Validated 校验则不生效

613421dabb974bdc7bb0061a44bbb35a.png

总结区别

@Validated 支持分组 作用在类型 上,不支持集合类型

@Valid  不支持 分组可以 作用在 类型,集合,上

对象嵌套校验可以 两者一起使用。

https://www.cnblogs.com/javaguide/p/11832752.html

控制 顺序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值