一、依赖

                org.springframework.bootspring-boot-starter-validation2.3.3.RELEASE

二、实体类

    @TableField("username")    @NotBlank(message = "{user.name.notBlank}")    private String username;    @NotBlank(message = "{user.password.notBlank}")    @TableField("password")    private String password;    @NotBlank(message = "{user.email.notBlank}")    @Email(message = "{user.email.pattern}")    @TableField("email")    private String email;

三、配置

查看LocalValidationFactoryBean类的源码,发现Spring Boot默认的ValidationMessagesSource校验出错时的提示文件是在resources文件夹下文件ValidationMessages.properties

ValidationMessages.properties

user.name.notBlank=用户名不能为空user.password.notBlank=密码不能为空user.email.notBlank=邮箱不能为空user.email.pattern=邮箱格式不正确

ValidationMessages.properties

四、Controller

/**     * 添加用户     *     * @param user 用户对象     * @return     */    @PostMapping("/insert")    public ResultVO insert(@Validated @RequestBody User user, BindingResult bindingResult) {        if (bindingResult.hasErrors()) {            List allErrors = bindingResult.getAllErrors();return ResultVOUtil.fail(allErrors.stream().map(ObjectError::getDefaultMessage).collect(Collectors.toList()));        }        userService.insert(user.doBuild());return ResultVOUtil.success();    }

五、效果

效果

六、参考注解

注解 作用
@NotNull 值不能为空
@Null 值必须为空
@Pattern(regex=) 字符串必须匹配正则表达式
@Size(min, max) 集合元素的数量必须在min和max之间
@CreditCardNumber(ignoreNonDigitCharacters=) 字符串必须是信用卡号,按照美国的标准验证
@Email 字符串必须是Email地址
@Length(min, max) 检查字符串的长度
@NotBlank 字符串不能为空串
@NotEmpty 字符串不能为null, 集合必须有元素
@Range(min, max) 数字必须大于min, 小于max
@SafeHtml 字符串必须是安全的html
@URL 字符串必须是合法的URL
@AssertFalse 值必须是false
@AssertTrue 值必须是true
@DecimalMax(value=, inclusive=) 值必须小于等于(inclusive=true)/小于(inclusive=false)属性指定的值,也可以注释在字符串类型的属性上。
@DecimalMin(value=, inclusive=) 值必须大于等于(inclusive=true)/小于(inclusive=false)属性指定的值,也可以注释在字符串类型的属性上。
@Digist(integer=,fraction=) 数字格式检查。integer指定整数部分的最大长度,fraction指定小数部分的最大长度
@Future 时间必须是未来的
@Past 事件必须是过去的
@Max(value=) 值必须小于等于value指定的值。不能注解在字符串类型属性上。
@Min(value=) 值必须小于等于value指定的值。不能注解在字符串类型属性上

点赞转发关注,你的支持是我最大的动力!

mybatis if test 判断参数_什么?你还在if判断参数?Spring Boot 注解进行参数校验真香...相关推荐

  1. 6.dubbo常用的xml配置有哪些_【面试篇】必须掌握的Spring 常用注解

    阅读文本大概需要5分钟. 注解本身没有功能的,就和 xml 一样.注解和 xml 都是一种元数据,元数据即解释数据的数据,这就是所谓配置. 本文主要罗列 Spring|Spring MVC相关注解的简 ...

  2. python获取命令行参数_【整理】Python中如何获得并处理命令行参数

    运行Python脚本时,时常需要从命令行中传递一些参数到Python程序中,但是如何获得相应的传递进来的参数,以及如何解析这些参数,是很多人,包括最开始的我,所遇到的问题. 下面,就对此总结一下: 先 ...

  3. Spring Boot如何优雅的校验参数

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「乱敲代码」 做web开发有一点很烦人就 ...

  4. java spring boot 注解验证_如何理解Java原生注解和Spring 各种注解?

    作者:digdeep .cnblogs.com/digdeep/p/4525567.html 导引 Spring中的注解大概可以分为两大类: spring的bean容器相关的注解,或者说bean工厂相 ...

  5. Spring Boot 如何优雅的校验参数?

    今天介绍一下 Spring Boot 如何优雅的整合JSR-303进行参数校验,说到参数校验可能都用过,但网上的教程大多是简单的介绍,所以我们今天详细看来一下 . 什么是 JSR-303? JSR-3 ...

  6. springboot启动没反应_新特性:Tomcat和Jetty如何处理Spring Boot应用?

    为了方便开发和部署,Spring Boot 在内部启动了一个嵌入式的 Web 容器.我们知道 Tomcat 和 Jetty 是组件化的设计,要启动 Tomcat 或者 Jetty 其实就是启动这些组件 ...

  7. 面试官 | 如何在 Spring Boot 中进行参数校验?

    作者 | 狂乱的贵公子 来源 | cnblogs.com/cjsblog/p/8946768.html 开发过程中,后台的参数校验是必不可少的,所以经常会看到类似下面这样的代码 这样写并没有什么错,还 ...

  8. 般若堂--Spring Boot系列之参数校验

    本章小宋带大家详细了解一下在Spring boot项目中,是怎么去验证参数的.话不多说直接进入学习时间. 目录 参数校验注解 相关依赖 实体类 一些常用的字段验证的注解 JSR提供的校验注解: Hib ...

  9. Spring Boot实现各种参数校验,值得一看

    前言 本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理,死磕到底! 项目源码:一键获取源码地址 简单使用 Java API规范 (JSR303) 定义了Bean校验的标 ...

最新文章

  1. 2.5英寸硬盘何止“五脏俱全”(硬盘构造再揭秘之四)
  2. 产业互联网时代,猪是如何上天的
  3. 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明 (关于数据类型-隐性转换的小陷阱)
  4. [转载]-如何向妻子解释OOD
  5. xen虚拟机克隆命令
  6. 星级评分--演进式部署
  7. 用Python看蜜雪冰城店铺在哪个省份最多~
  8. 本地jupyter notebook远程连接服务器
  9. 用后端接口调试工具Insomnia发送请求
  10. bzoj 1706: [usaco2007 Nov]relays 奶牛接力跑(倍增floyd)
  11. opencv 实现等值线_OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)...
  12. freeRADIUS下EAP测试
  13. 销售订单的 状态 变更
  14. 扫盲:什么是steam令牌验证器?哪些行为会触发steam交易限制
  15. 前端-h5移动端星空效果登录界面
  16. 绘制地形图(测量篇2——实测数据导入CAD)-龙啸
  17. 协同开发 ----以码云为例
  18. 台式计算机文件打不开怎么回事,电脑文件打不开是怎么回事 电脑Word文档打不开怎么处理...
  19. 简单明了的阐述SVM支持向量机以及做法步骤
  20. ssm+mysql+安卓app大学生社团信息管理系统-计算机毕业设计源码99953

热门文章

  1. 轻博客框架 php,DouPHP轻博客 v1.6 Release 20200925
  2. stm32 adc 连续和扫描_技术分享 | STM32多个ADC模块同时采样转换的应用示例
  3. 分计算iv值_筛选变量的指标—IV值
  4. xp正版验证补丁_实操web漏洞验证——IIS HTTP.sys 整数溢出漏洞
  5. oracle函数分为几个大类,ORACLE常见分析函数有哪几类呢?
  6. 小程序 获取腾讯地图计算两经纬度的实际距离(可批量)_多地打卡
  7. docker Gitlab14.5.0 初始化账号以及密码是什么呢?
  8. Java裁剪压缩PNG图片,透明背景色变黑问题解决
  9. VBA 常用代码及自定义函数备忘
  10. android studio n3710,英特尔奔腾N3710性能跑分和评测 | ZMMOO