# (三)Java Bean Validation 最佳实践

标签(空格分隔): JSR-303


这一节学习自定义校验注解

自定义校验规则

虽然jSR303和Hibernate Validtor 已经提供了很多校验注解,但是当面对复杂参数校验时,还是不能满足我们的要求,这时候我们就需要 自定义校验注解。

用到的时候再说吧

分组校验

  1. 定义空接口,区别不同的规则组
  2. 在校验规则上指明所属的校验组,可以属于多套校验规则组
  3. 使用的时候指明用那一套校验规则
public interface AddUser {

}
public interface UpdateUser {

}
@NotEmpty(message = "用户名不能为空",groups={AddUser.class})
private String username;
@Min(value = 18,message = "不能小于18",groups= {AddUser.class,UpdateUser.class})
private Integer age;
@RestController
public class HelloController {

    /**
     * 添加一个用户
     * @param user
     * @return
     */
    @PostMapping("/addUser")
    public User addUser(@Validated({AddUser.class}) User user,BindingResult bindingResult) {
        if(bindingResult.hasErrors()) {
            System.out.println(bindingResult.getFieldError().getDefaultMessage());
        }
        System.out.println(user.getUsername());
        System.out.println(user.getAge());
        return user;

    }

}

此处@Validated(AddUser.class) 表示使用AddUser这套校验规则,若使用@Valid 则表示使用默认校验规则

Copyright © wu_mingsheng@126.com 2017 all right reserved,powered by Gitbook该文件最后修改时间: 2020-01-19 13:42:27

results matching ""

    No results matching ""