public class UserInfo {
@NotNull(message = "年龄不能为空",groups = Add.class)
private String name;
@Max(value = 100,message = "不能超过100")
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
@GetMapping("add")
public Object add(@Validated(Add.class) UserInfo userInfo, BindingResult result) {
Map m = new HashMap<>();
m.put("user", userInfo);
return m;
}
正常情况我们是在方法中,判断BingingResult是否存在error,然后返回错误信息.但是这样每个方法都需要写比较麻烦....可以交给aop统一处理;
@Pointcut(value = "execution(* com.example.anguo.web.*.*(..))")
public void web() {
}
@Around(value = "web()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
Object[] args = joinPoint.getArgs();
for (Object o : args) {
if (o instanceof BindingResult) {
BindingResult result = (BindingResult) o;
if (result.hasErrors()) {
return MyResponse.error(result.getFieldErrors().get(0).getDefaultMessage());
}
}
}
return joinPoint.proceed();
}