iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >@Valid注解怎么规范使用
  • 680
分享到

@Valid注解怎么规范使用

2023-06-29 00:06:48 680人浏览 安东尼
摘要

这篇文章主要介绍“@Valid注解怎么规范使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“@Valid注解怎么规范使用”文章能帮助大家解决问题。@Valid注解大全及用法规范注解描述@Assert

这篇文章主要介绍“@Valid注解怎么规范使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“@Valid注解怎么规范使用”文章能帮助大家解决问题。

@Valid注解大全及用法规范

注解描述
@AssertFalse带注解的元素必须为false,支持boolean/Boolean
@AssertTrue带注解的元素必须为true,支持boolean/Boolean
@DecimalMax带注解的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin带注解的元素必须是一个数字,其值必须大于等于指定的最小值
@Digits带注解的元素必须是一个可接受范围内的数字
@Future带注解的元素必须是将来的某个时刻、日期或时间
@Max带注解的元素必须是一个数字,其值必须小于等于指定的最大值
@Min带注解的元素必须是一个数字,其值必须大于等于指定的最小值
@NotNull带注解的元素不能是Null
@Null带注解的元素必须是Null
@Past带注解的元素必须是过去的某个时刻、日期或时间
@Pattern带注解的元素必须符合指定的正则表达式
@Size带注解的元素必须大于等于指定的最小值,小于等于指定的最大值
@Email带注解的元素必须是格式良好的电子邮箱地址
@NotEmpty带注解的元素不能是空,String类型不能为null,Array、Map不能为空,切size/length大于0
@NotBlank字符串不能为空、空字符串、全空格
@URL字符串必须是一个URL

@Valid注解规范用户请求的参数

业务场景

对于一个用户的注册操作(Post请求),往往涉及到账号(username)、密码(passWord)的Post提交:

//用户发送POST请求创建新的用户@PostMappingpublic User create(@RequestBody User user){        //打印用户提交的信息    System.out.println(user.getId());    System.out.println(user.getUsername());    System.out.println(user.getPassword());    System.out.println(user.getBirthday());    return user;}

业务出现的问题

但用户往往会不小心提交了空的密码来注册,这是不允许的,因此我们往往需要对用户提交的密码信息进行空判断,常见的方法是直接进行if语句的空判断:

//用户发送POST请求创建新的用户@PostMappingpublic User create(@RequestBody User user){    if( StringUtils.isBlank(user.getPassword())){        //用户输入密码为空,进行异常处理    }        //打印用户提交的信息    System.out.println(user.getId());    System.out.println(user.getUsername());    System.out.println(user.getPassword());    System.out.println(user.getBirthday());    return user;}

以上方法看似行得通,但一旦Post的方法变多,则需要对每个Post请求都进行一次if判断是否为空,代码变得冗余,而且一旦修改一个地方,所有if语句都需要修改,可维护性就变得很差。

优化的解决方案

那么,有没有一种方法可以一劳永逸、既没有大量代码冗余,可维护性又好呢?这时 javax.validation包下的@Valid注解就派上用场了。

首先,我们在实体类User.java中的密码(password)属性加上@NotBlank注解(hibernate.validator.constraints包)

import org.hibernate.validator.constraints.NotBlank;public class User {    public interface UserSimpleView{}    public interface UserDetailView extends UserSimpleView{}    private String username;    //给该属性加入NotBlank非空的约束    @NotBlank    private String password;    private String id;    private Date birthday;    public Date getBirthday() {        return birthday;    }    public void setBirthday(Date birthday) {        this.birthday = birthday;    }    @JSONView(UserSimpleView.class)    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    @jsonView(UserSimpleView.class)    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    @JsonView(UserDetailView.class)    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

我们在Controller类的Post方法的参数中加入@Valid注解,并使用BindingResult将错误信息作为日志打印到后台

@PostMappingpublic User create(@Valid @RequestBody User user,                       BindingResult errors){    if (errors.hasErrors()){        //异常处理        errors.getAllErrors().stream().forEach(error -> System.out.println(error.getDefaultMessage()));    }    user.setId("1");    System.out.println(user.getId());    System.out.println(user.getUsername());    System.out.println(user.getPassword());    System.out.println(user.getBirthday());    return user;}

这时,当我们向服务器Post提交空的密码信息时,后台会打印出错误信息:

may not be empty

关于“@Valid注解怎么规范使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: @Valid注解怎么规范使用

本文链接: https://www.lsjlt.com/news/321465.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • @Valid注解怎么规范使用
    这篇文章主要介绍“@Valid注解怎么规范使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“@Valid注解怎么规范使用”文章能帮助大家解决问题。@Valid注解大全及用法规范注解描述@Assert...
    99+
    2023-06-29
  • 关于@Valid注解大全以及用法规范
    目录@Valid注解大全及用法规范@Valid注解规范用户请求的参数业务场景业务出现的问题优化的解决方案@Valid注解大全及用法规范 注解描述@AssertFalse带注解的元素必...
    99+
    2024-04-02
  • 关于注解FeignClient的使用规范
    注解FeignClient使用规范 首先是对FeignClient里的常用属性 contextId:当有多个服务调用方法不想写在一个接口里,就要使用到name:指定FeignClie...
    99+
    2024-04-02
  • 注解FeignClient使用的规范有哪些
    本文小编为大家详细介绍“注解FeignClient使用的规范有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“注解FeignClient使用的规范有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。注解Fei...
    99+
    2023-06-29
  • 如何正确规范使用论文脚注
    论文中的脚注有很多种,根据不同学校的要求来定,这个需要涉及到Word的使用,很多同学不会使用Word,我这里说的不会使用,不是指不会打开Word输入文字,而是里面的许多功能我们先讲一下什么是脚注。脚注,是汉语词汇,汉语拼音为就是可以附在文章...
    99+
    2023-06-03
  • @Valid注解的作用及@Valid注解与@Validated的区别
    目录1.@Valid注解2.@Valid与@Validated的区别注解位置分组校验组序列嵌套校验1.@Valid注解 用于验证注解是否符合要求,直接加在变量user之前,在变量中添...
    99+
    2024-04-02
  • spring注解@Valid有什么用
    小编给大家分享一下spring注解@Valid有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!spring注解 @Valid 的作用在controller中...
    99+
    2023-06-29
  • @valid注解不生效怎么办
    这篇文章主要为大家展示了“@valid注解不生效怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“@valid注解不生效怎么办”这篇文章吧。一、背景在进行一次Controller层单测时,方法...
    99+
    2023-06-15
  • CSS注释怎么用?该怎么写有什么规范吗?
    这篇文章将为大家详细讲解有关CSS注释怎么用?该怎么写有什么规范吗?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。CSS 注释规范和用法 CSS 注释用于向代码添加解释性说明,提高可读性和可维护性。它不会...
    99+
    2024-04-02
  • PHPCMS用户名规范与注意事项解析
    PHPCMS用户名规范与注意事项解析 随着互联网的发展,越来越多的网站和应用程序需要用户注册和登录,用户管理成为开发者们不可忽视的重要部分。而用户名作为用户的唯一标识,其规范和注意事项...
    99+
    2024-03-14
    注意事项 phpcms 用户名规范 sql语句 防止sql注入 用户注册
  • Go语言注释编码规范详解
    Go语言注释编码规范详解 在编程中,注释是一种非常重要的编码规范,它可以帮助其他开发者理解代码的含义和逻辑。尤其对于团队合作开发来说,规范的注释能够提高代码的可读性和可维护性。本文将详...
    99+
    2024-04-02
  • Git 使用规范有哪些
    本篇文章为大家展示了Git 使用规范有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步:新建分支首先,每次开发新功能,都应该新建一个单独的分支(这方面可以参考《Git分支管理策略》)。# 获...
    99+
    2023-06-04
  • 关于MySQL的使用规范
    这篇文章主要介绍关于MySQL的使用规范,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近涉及数据库相关操作较多,公司现有规范也不是太全面,就根据网上各路大神的相关规范,整理了一些自...
    99+
    2024-04-02
  • MySQL使用规范有哪些
    本篇内容介绍了“MySQL使用规范有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据库环境dev: ...
    99+
    2024-04-02
  • Java Git Commit Message使用规范
    目录概述一、Commit message 的格式1.1 Header1.2 Body二、例子2.1 feat例子2.2 fix例子插件推荐概述 不知道大家在各自项目中是如何写提供代码...
    99+
    2024-04-02
  • 怎么使用Commitizen规范代码提交信息
    这篇文章主要介绍了怎么使用Commitizen规范代码提交信息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Commitizen规范代码提交信息文章都会有所收获,下面我们一起来看看吧。什么是 Commi...
    99+
    2023-07-05
  • ASP.NET Core使用Swagger/OpenAPI规范
    目录1.什么是Swagger/OpenAPI?2.NET Swagger实现3.Swashbuckle主要组成部分4.什么是REST5.配置Swagger中间件6.XML注释7.数据...
    99+
    2024-04-02
  • linux命令的注释规范是什么
    Linux命令的注释规范可以按照以下方式进行: 命令说明:在注释中简要描述命令的功能和用途。可以包括命令的基本语法和参数等信息。...
    99+
    2023-10-27
    linux
  • 深入理解Go语言注释编码规范
    在Go语言中,注释编码规范是非常重要的,它不仅可以使代码更加易读和易维护,还能帮助其他开发者快速理解你的代码逻辑。本文将详细介绍Go语言中的注释编码规范,并附带具体的代码示例,帮助读者...
    99+
    2024-04-02
  • ECMAScript modules规范怎么写
    这篇文章主要讲解了“ECMAScript modules规范怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ECMAScript modules规范怎么写”吧!基本语...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作