Bean Validation 注解
@Null 验证对象为空
@NotNull 验证对象不为空
@Min 验证Number和String对象是否大于指定的值
@Max 验证Number和String对象是否小于指定的值
@Size 验证对象(Array,collection,Map,String)长度是否在给定的范围之内
@Past 验证Date和Calendar对象是否在当前时间之前
@Future 验证Date和Calendar对象是否在当前时间之后
@AssertTrue 验证Boolean对象是否为true
@AssertFalse 验证Boolean对象是否为false
@Valid 级联验证注解
例如:
package com.example.rest;
import java.util.Date;
import javax.validation.constraints.Null;
import org.springframework.lang.NonNull;
public class Student {
@Null private int id;
@NonNull private String name;
@NonNull private Date creatDate;
private boolean used;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int id, String name, Date creatDate, boolean used) {
super();
this.id = id;
this.name = name;
this.creatDate = creatDate;
this.used = used;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreatDate() {
return creatDate;
}
public void setCreatDate(Date creatDate) {
this.creatDate = creatDate;
}
public boolean isUsed() {
return used;
}
public void setUsed(boolean used) {
this.used = used;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", creatDate=" + creatDate + ", used=" + used + "]";
}
}
在Controller中必须加@Valid,不然之前实体类中设置的都白设置了
@PostMapping
public Student addStu(@Valid @RequestBody Student student) {
if(log.isInfoEnabled()) {
log.trace("这里因该写新增student到数据库的代码==" + student.toString());
}
student.setId(789);
return student;
}