手动进行valid校验

有时候我们在java bean加上@valid注解后,可以自动进行validation校验,注解校验分别由这些

JSR提供的校验注解:

@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提供的校验注解:

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

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

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

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

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

但是我们有时候会出现特殊的校验情况,例如需要校验,但是不需要立即返回校验错误结果,而是在代码逻辑中自行处理。所以作者在这里提供一份手动校验代码,当set有结果集时,表示校验不通过。

//用于存储验证后的错误信息
Object obj = new Object();
Set<ConstraintViolation<Object>> validate = Validation.buildDefaultValidatorFactory().getValidator().validate(obj);
if (validate != null ) {
    throw new ValidationException();
}

手动进行valid校验相关推荐

  1. java切面不需要接口了吗_详解Spring AOP 实现“切面式”valid校验

    why: 为什么要用aop实现校验? answer: spring mvc 默认自带的校验机制 @Valid + BindingResult, 但这种默认实现都得在Controller方法的中去接收B ...

  2. @valid 校验_一文带你快速入手 Spring Boot 参数校验

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 作者:狂乱的贵公子 来源: ...

  3. @Validated和@Valid校验参数

    @Validated和@Valid校验参数 参考: @Validated和@Valid校验参数.级联属性.List java valid payload_Spring Validation最佳实践及其 ...

  4. @valid 校验_SpringBoot数据校验与优雅处理详解

    本篇要点 JDK1.8.SpringBoot2.3.4release 说明后端参数校验的必要性. 介绍如何使用validator进行参数校验. 介绍@Valid和@Validated的区别. 介绍如何 ...

  5. @Validated和@Valid校验参数、级联属性、List

    @Validated和@Valid的区别 在Controller中校验方法参数时,使用@Valid和@Validated并无特殊差异(若不需要分组校验的话): @Valid:标准JSR-303规范的标 ...

  6. @Validated与@Valid校验

    痛点:开发接口的时候,对于请求参数,往往需要进行校验,这个时候可以采用如下方式校验请求参数id和number,显然这种方式难以维护,即便封装成方法,依旧麻烦. @PostMapping("/ ...

  7. 解决@Valid校验List失败问题

    背景 在实际的项目开发中,当参数是List集合方式时,往往我们需要对List集合属性进行校验. 场景1 ··· @PostMapping("/preOrder") public R ...

  8. 校验注解:@Valid 和 @Validated区别与用法(附详细案例)

    一.案例对象 本文章会以案例为主,讲解@Valid 和 @Validated这两个注解的区别与用法. 1.首先,创建一个学生对象,如下: import lombok.Data;/*** 学生对象*/ ...

  9. springMVC 优雅的校验参数(@Valid和@Validated)

    很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation ...

最新文章

  1. tomcat环境部署
  2. MIT博士用概率编程让AI和人类一样看三维|NeurIPS 2021
  3. NumPy简明教程(二、数组2)
  4. 面试中遇到过的闭包~
  5. 一个简易的反射类库NMSReflector
  6. 一个追求高效的学习者手机里装有哪些APP?(转)
  7. OpenFire源码学习之十九:在openfire中使用redis插件(上)
  8. Activiti工作流的简单介绍
  9. java对象序列化和反序列化,redis存入和获取对象
  10. 004redis与python的交互
  11. Python基础笔记(三) dict、set、函数
  12. Linux设置Oracle环境变量
  13. 电脑管家卸载后留下的一个叫 电脑管家-安全注册 的进程,无法关闭。展开的服务是 qmbsrv
  14. 哈工大计算机854考研经验分享
  15. SpringBoot单元测试断言 assertions
  16. 中国的数字化转型 China’s digital transformation
  17. Linux从头开始学--学习笔记9知识点补充-ubuntu,centos;在linux上创建c程序;linux基础命令,shell命令,vi命令,man帮助手册
  18. 对自动变速器的控制器建模
  19. 恒生电子实习记录-13
  20. matlap之零输入响应

热门文章

  1. 完全二叉树的层序遍历游戏
  2. 浪漫的python代码_七夕,最浪漫的Python代码送给陷入爱河的Python男同胞
  3. redis常用数据结构与安装使用
  4. 服务全球—bluesign认证(蓝标认证)源自瑞士
  5. ICT的圣杯(三):产业融合的技术乐章
  6. JS监听返回、后退、上一页按钮的事件方法
  7. 电脑无法登录microsoft账号怎么办?
  8. springboot如何将一个对象的所有属性赋值到另外一个对象上,属性名需要相同
  9. 《长江七号》:周星驰的童梦奇缘
  10. 一文讲透HTTP缓存之ETag