首先在對象上標(biāo)注validator的校驗注解,并指定groups沈堡,用于區(qū)分校驗場景静陈。如果校驗接口繼承了Default,
那么沒有指定groups的字段诞丽,也會進行校驗鲸拥,否則只會校驗指定groups的字段
1、如果springboot版本沒有集成validator僧免,手動導(dǎo)入validator包
2刑赶、新建兩個認證規(guī)則接口.insert,update。
public class FooRuleGroups {
public interface insert{}
public interface update extends Default{};
}
3懂衩、對對象進行校驗
public class Foo {
@NotNull(message = "age不能為空",groups = FooRuleGroups.update.class)
private Integer age;
@NotBlank(message = "name不能為空",groups = FooRuleGroups.insert.class)
private String name;
@NotBlank(message = "id不能為空")
private String id;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
4撞叨、接口測試
@PostMapping("/test4")
public Object test4(@RequestBody @Validated({FooRuleGroups.update.class}) Foo foo, BindingResult bindingResult) {
System.out.println("注解執(zhí)行結(jié)束金踪,執(zhí)行業(yè)務(wù)==============================");
if (bindingResult.hasErrors()) {
return bindingResult.getFieldError().getDefaultMessage();
} else {
return foo;
}
}
@PostMapping("/test5")
public Object test5(@RequestBody @Validated({FooRuleGroups.insert.class}) Foo foo, BindingResult bindingResult) {
System.out.println("注解執(zhí)行結(jié)束,執(zhí)行業(yè)務(wù)==============================");
if (bindingResult.hasErrors()) {
return bindingResult.getFieldError().getDefaultMessage();
} else {
return foo;
}
}
``