springboot中利用Hibernate-Validation

源码 2024-10-2 14:41:14 15 0 来自 中国
1、阐明

后端接口计划时间,必要对前端哀求参数举行'先校验后处理业务'环境,如果在业务代码中通过雷同if这里逐个校验,会使得代码变得繁琐,开辟工作者都是爱偷懒的。java中,Bean Validation 为JavaBean的验证界说了相干的元数据模子和API。基于Bean-Validation封装,提供了更加丰富的Hibernate-Validation的校验包。也有开辟会把这类校验交给前端来处理,但是接口袒露外网会存在直接调用环境(黄牛)。究竟:前端校验是为了进步用户的体验度,后端校验则是为了包管数据的安全性
优点
1.验证逻辑与业务逻辑之间举行了分离,低沉了步伐耦合度
2.同一且规范的验证方式,无需你再次编写重复的验证代码
3.你将更专注于你的业务,将这些繁琐的变乱齐备丢在一边
2、Bean Validation与Hibernate Validation

2.1 Bean Validation中内置的constraint

包位置路径:javax.validation.constraints

1.png
注解阐明@AssertFalse解释的元素必须为False@AssertTrue解释的元素必须为True@Email解释的元素必须邮箱@NotBlank解释的元素不能为空,!null && size>0@NotEmpty解释的元素不能为空,数组,聚集等@NotNull解释的元素必须为空,但可以为""字符串@DecimalMin解释的元素数字,最小不得小于Min@DecimalMax解释的元素为数字,最大不高出Max值此中NotNull、NotEmpty、NotBlank区别

  • @NotNull
    实用于根本数据范例(Integer,Long,Double等等),当 @NotNull 注解被利用在 String 范例的数据上,则体现该数据不能为 Null(但是可以为 Empty)
  • @NotBlank
    实用于 String 范例的数据上,加了@NotBlank 注解的参数不能为 Null 且 trim() 之后 size > 0
  • @NotEmpty
    实用于 String、Collection聚集、Map、数组等等,加了@NotEmpty 注解的参数不能为 Null 大概 长度为 0
2.1 Hibernate Validation中添加的constraint

2.png 注解阐明@Length解释的元素字符串长度必须为订定返回内@Range解释的元素必须在指定范围内@URL解释的元素必须为链接3、基于Hibernate Validation的实现

(1)pom包引用
检察spring-boot-start-web中已经集成了Hibernate Validation,以是可以不消额外引用包。同时spring-boot-start-validation也完成了Hibernate Validation的start封装(校验机制更加全面)。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:45, Processed in 0.177197 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表