validation 常用注解


<dependency>
   <groupId>javax.validationgroupId>
   <artifactId>validation-apiartifactId>
   <version>1.1.0.Finalversion>
dependency>

<dependency>
   <groupId>org.hibernategroupId>
   <artifactId>hibernate-validatorartifactId>
   <version>5.2.0.Finalversion>
dependency>
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Date;

@Data
public class UserDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    
    @NotNull(message = "用户id不能为空")
    private Long userId;
 
    @NotBlank(message = "用户名不能为空")
    @Length(max = 20, message = "用户名不能超过20个字符")
    @Pattern(regexp = "^[\\u4E00-\\u9FA5A-Za-z0-9\\*]*$", message = "用户昵称限制:最多20字符,包含文字、字母和数字")
    private String username;

    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    private String mobile;
 
    @NotBlank(message = "联系邮箱不能为空")
    @Email(message = "邮箱格式不对")
    private String email;
    
    @Future(message = "时间必须是将来时间")
    private Date createTime;

}
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,且trim后长度必须大于0    
@Email  被注释的元素必须是电子邮箱地址    
@Length(min=,max=)  被注释的字符串的大小必须在指定的范围内    
@NotEmpty   被注释的字符串的必须非空    
@Range(min=,max=,message=)  被注释的元素必须在合适的范围内

Controller

public DataResponse createArchive(@RequestBody @Valid Request request)

使用实体类的时候给默认值

@Entity
@Table(name="stock")
@Data
public class Destocking extends AbstractAuditing  {
    @Id
    private String id;
    @NotNull
    private String country;
    @Enumerated(EnumType.STRING)
    private Status status = Status.STOCK_IN;
    private String comment;
    @ApiModelProperty(value = "费用", readOnly = true)
    private Double price = 0d;
}

你可能感兴趣的:(填坑)