aop+注解 实现对实体类的字段校验_SpringBoot2.0实战(6)整合hibernate-validator进行参数校验...

spring-boot-starter-web 项目中默认已经集成了 hibernate-validator

相关知识

@AssertTrue // 用于 boolean 字段,该字段只能为 true

@AssertFalse // 用于 boolean 字段,该字段只能为 false

@DecimalMax // 用于 Number 字段,只能小于或等于该值

@DecimalMin // 用于 Number 字段,只能大于或等于该值

@Digits(integer=2,fraction=20) // 检查是否是数字,校验整数位及小数位

@Future // 检查该字段的日期是否是属于将来的日期

@Length(min=2,max=6) // 用于字符串,检查字段长度是否在指定范围内

@Max // 用于 Number 字段,只能小于或等于该值

@Min // 用于 Number 字段,只能大于或等于该值

@NotNull // 该字段不能为空

@NotEmpty // 用于字符串,该字段不能为空字符串

@NotBlank // 用于字符串,该字段不能为空字符串,忽略空格

@Null // 该字段必须为空

@Size(min=2,max=4) // 用于字符串、数组、集合、Map等,检查该字段的size是否在指定范围

课程目标

本章将在 SpringBoot集成SpringBootJPA完成CURD 的基础上,整合 hibernate-validator,对入参进行校验。

操作步骤

添加依赖

spring-boot-starter-web 已经默认添加对 hibernate-validator 的依赖

5d7fb2a5f2ad81b81c734c739cd047ac.png

编码

为实体类添加校验规则

056afc5584659d22c675224577194d12.png

使用校验

在 Controller 接口的参数前面添加 @Valid 注解,入参注入时便会自动进行规则校验,如果校验成功,则执行方法体,如果校验失败,有两种处理方法。

  • 在参数列表的最后面添加一个 BindingResult 对象获取校验结果,自行组织输出内容。
  • 不使用 BindingResult 对象,则框架抛出异常,通过异常处理机制可以进行捕获,组织输出内容。

@RestController

38222c17d46bbd258dbae347d3b6d24c.png

源码地址

本章源码 : https://github.com/caiyuanzi-song/boot.git

总结

一个安全的接口需要对每一个入参进行校验,以保证参数合法性。

参考资料

http://www.cnblogs.com/mr-yang-localhost/p/7812038.html

https://blog.youkuaiyun.com/qq_22845447/article/details/84034289

扩展

自定义校验

创建一个注解,其中 @Constraint 用于指向该注册将使用的自定义校验类

c46ddb47179fb62554d83295b53bd95a.png

创建自定义校验类

c8bfa03b05a2d72a203633e3bfecc1c4.png

使用自定义校验

9f30e359120d06d7af74be0377b7bb9f.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值