• SpringBoot2.x 参数校验


    本文主要对SpringBoot2.x参数校验进行简单总结,其中SpringBoot使用的2.4.5版本

    一、引入依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <!-- lombok插件 -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.8</version>
    </dependency>

    二、实体类

    User类:

    package com.rtxtitanv.model;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.hibernate.validator.constraints.Length;
    
    import javax.validation.constraints.*;
    
    /**
     * @author rtxtitanv
     * @version 1.0.0
     * @name com.rtxtitanv.model.User
     * @description 用户实体类
     * @date 2021/8/15 16:28
     */
    @AllArgsConstructor
    @NoArgsConstructor
    @Data
    public class User {
        @NotNull(message = "id不能为空")
        private Long id;
        @Length(min = 6, max = 20, message = "用户名长度不小于6,不超过20")
        @NotNull(message = "用户名不能为空")
        private String username;
        @Pattern(regexp = "^[A-Z][A-Za-z0-9_]{5,19}$", message = "密码以大写英文字母开头,只包含英文字母、数字、下划线,长度在6到20之间")
        @NotNull(message = "密码不能为空")
        private String password;
        @Max(value = 60, message = "年龄最大为60")
        @Min(value = 18, message = "年龄最小为18")
        @NotNull(message = "年龄不能为空")
        private Integer age;
        @Email(message = "邮箱格式不正确")
        @NotEmpty(message = "邮箱不能为空")
        private String email;
        private String rank;
    }

    通用响应类:

    package com.rtxtitanv.model;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.springframework.http.HttpStatus;
    
    import java.io.Serializable;
    
    /**
     * @author rtxtitanv
     * @version 1.0.0
     * @name com.rtxtitanv.model.CommonResult
     * @description 通用响应类
     * @date 2021/8/15 17:35
     */
    @AllArgsConstructor
    @NoArgsConstructor
    @Data
    public class CommonResult<T> implements Serializable {
    
        private static final long serialVersionUID = 5231430760082814286L;
        private int code;
        private String message;
        private T data;
    
        public static <T> CommonResult<T> ok(String message, T data) {
            return new CommonResult<T>(HttpStatus.OK.value(), message, data);
        }
    
        public static <T> CommonResult<T> fail(int code, String message, T data) {
            return new CommonResult<>(code, message, data);
        }
    }

    三、常用的校验注解

    这里对一些用于参数校验的常用注解进行总结:

    • @Null:必须为null。
    • @NotNull:必须不为null。
    • @AssertTrue:必须为true。
    • @AssertFalse:必须为false。
    • @Min(value):必须是一个大于等于指定值的数字。
    • @Max(value):必须是一个小于等于指定值的数字。
    • @DecimalMin(value):必须是一个大于等于指定值的数字。
    • @DecimalMax(value):必须是一个小于等于指定值的数字。
    • @Size(min=,max=):大小必须在指定的范围内。
    • @Digits(integer, fraction):必须是一个数字,其值必须在可接受的范围内。
    • @Past:必须是一个过去的日期。
    • @Future:必须是一个将来的日期。
    • @Pattern(regex=):必须符合指定的正则表达式。
    • @Email:必须是一个有效的email地址。
    • @Length(min=,max=):字符串长度是否在指定范围内。
    • @NotBlank:必须非空且长度大于0。
    • @NotEmpty:必须不为null或空。
    • @URL(protocol=,host,port):必须是一个有效的URL,如果提供了protocol,host等,则还需满足提供的条件。
  • 相关阅读:
    虚拟主机wordpress文件上传大小限制更改
    wordpress网站迁移
    JavaScript算法相关
    文章阅读(三)
    文章阅读(二)
    Image():强制让图片缓存起来
    JavaScript运算符与类型
    JavaScript权威指南--多媒体和图形编程
    JavaScript权威指南--脚本化HTTP
    JavaScript权威指南--事件处理
  • 原文地址:https://www.cnblogs.com/lyck/p/15166466.html
Copyright © 2020-2023  润新知