Java 中常用注解


@Null:被注释的元素必须为null

@NotNull:被注释的元素不能为null

@AssertTrue:该字段只能为true

@AssertFalse:该字段的值只能为false

@Min(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@Max(value):被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@DecimalMin(“value”):被注释的元素必须是一个数字,验证小数的最小值

@DecimalMax(“value”):被注释的元素必须是一个数字,验证小数的最大值

@Size(max,min):查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等

@Past:被注释的元素必须是一个过去的日期

@Future:被注释的元素必须是一个将来的日期

@Pattern(regexp = “[abc]”):被注释的元素必须符合指定的正则表达式。

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

@Length(max=5,min=1,message=“长度在1~5”):检查所属的字段的长度是否在min和max之间,只能用于字符串

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

@Range:被注释的元素必须在合适的范围内

@NotBlank:不能为空,检查时会将空格忽略

@NotEmpty:不能为空,这里的空是指空字符串

@TableField(exist = false) 字段不新增数据库

@TableField(updateStrategy = FieldStrategy.NOT_EMPTY,jdbcType = JdbcType.VARCHAR) 如果字段为空的时候 不修改

@JsonFormat:时间格式化注解(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")





Maven依赖    

  
                    javax.validation            validation-api            2.0.1.Final                
                    org.hibernate.validator          hibernate-validator




2 值校验

2.1 @Null注解

被注解的元素必须为null


@Null(message = "必须为null")

private String username;


2.2 @NotNull注解

被注解的元素必须不为null


@NotNull(message = "必须不为null")

private String username;


2.3 @NotBlank注解

验证注解的元素值不为空(不为null、去除首位空格后长度为0) ,并且类型为String。


@NotBlank(message = "必须不为空")

private String username;


2.4 @NotEmpty注解

验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) ,并且类型为String。


@NotEmpty(message = "必须不为null且不为空")

private String username;


2.5 @AssertTrue注解

被注解的元素必须为true,并且类型为boolean。


@AssertTrue(message = "必须为true")

private boolean status;


2.6 @AssertFalse注解

被注解的元素必须为false,并且类型为boolean。


@AssertFalse(message = "必须为false")

private boolean status;


3 范围校验

3.1 @Min注解

被注解的元素其值必须大于等于最小值,并且类型为int,long,float,double。

@Min(value = 18, message = "必须大于等于18")

private int age;


3.2 @Max注解

被注解的元素其值必须小于等于最小值,并且类型为int,long,float,double。


@Max(value = 18, message = "必须小于等于18")

private int age;


3.3 @DecimalMin注解

验证注解的元素值大于等于@DecimalMin指定的value值,并且类型为BigDecimal。


@DecimalMin(value = "150", message = "必须大于等于150")

private BigDecimal height;


3.4 @DecimalMax注解

验证注解的元素值小于等于@DecimalMax指定的value值 ,并且类型为BigDecimal。


@DecimalMax(value = "300", message = "必须大于等于300")

private BigDecimal height;


3.5 @Range注解

验证注解的元素值在最小值和最大值之间,并且类型为BigDecimal,BigInteger,CharSequence,byte,short,int,long。


@Range(max = 80, min = 18, message = "必须大于等于18或小于等于80")

private int age;


3.6 @Past注解

被注解的元素必须为过去的一个时间,并且类型为java.util.Date。


@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@Past(message = "必须为过去的时间")

private Date createDate;


3.7 @Future注解

被注解的元素必须为未来的一个时间,并且类型为java.util.Date。


@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@Future(message = "必须为未来的时间")

private Date createDate;


4 长度校验

4.1 @Size注解

被注解的元素的长度必须在指定范围内,并且类型为String,Array,List,Map。


@Size(max = 11, min = 7, message = "长度必须大于等于7或小于等于11")

private String mobile;

4.2 @Length注解

验证注解的元素值长度在min和max区间内 ,并且类型为String。


@Length(max = 11, min = 7, message = "长度必须大于等于7或小于等于11")

private String mobile;


5 格式校验

5.1 @Digits注解

验证注解的元素值的整数位数和小数位数上限 ,并且类型为float,double,BigDecimal。


@Digits(integer=3,fraction = 2,message = "整数位上限为3位,小数位上限为2位")

private BigDecimal height;


5.2 @Pattern注解

被注解的元素必须符合指定的正则表达式,并且类型为String。


@Pattern(regexp = "\\d{11}",message = "必须为数字,并且长度为11")

private String mobile;


5.3 @Email注解

验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式,类型为String。


 @Email(message = "必须是邮箱")

  private String email;







评论

@ElementCollection 
@CollectionTable(name= "dict_attributes",joinColumns = {@Joincolumn(name = "id")}) 
@MapKeyColumn(name ="[key]") 
@Column(name ="[value]") 
private Map name = new HashMap>(2); 
@Transient 
BindingValue first; 
 
 
-------------------------------------------------------------------------------- 
请问,以上的注解有什么作用 ?举例子说明。

2025-02-25 15:22:18

  • 1

编程爱好者 © 2021 - 2024