Java 约束注解
发布于: 2020 年 08 月 23 日
常用约束注解

相关依赖

初级注解使用
public class UserInfo { @NotNull(message = "用户ID不能为空 ") private Integer id; @NotEmpty(message = "用户名不能为空") private String username; /** * NotBlank 会自动去掉前后空格 */ @NotBlank(message = "用户密码不能为空") @Length(min = 6, max = 20, message = "密码不能少于6位多于20位") private String password; @Email(message = "格式必须为有效邮箱") private String email; @Min(value = 18, message = "年龄不能小于18") @Max(value = 60, message = "年龄不能大于60") private Integer age; @Size(min = 1, message = "不能少于一个好友") private List<UserInfo> friends; private String phone; @Past(message = "生日不能为未来日期") private LocalDate date;}
级联验证
比如定义了一个 List<UserInfo> list,现在我希望集合里面的 userInfo也能符合业务验证要求,
@Size(min = 1, message = "不能少于一个好友")@Size(min = 1, message = "不能少于一个好友")private List<@Valid UserInfo> friends; // 这样就能实现级联验证了
中级约束之分组验证
有些场景,比如登录是一定要验证 id 名称那些的,而注册的时候并不需要,能不能分场合进行验证呢
public class UserInfo { // 登录场景 public interface LoginGroup{} // 注册场景 public interface RegisterGroup{} @NotNull(message = "用户ID不能为空", groups = LoginGroup.class) private Integer id; @NotEmpty(message = "用户名不能为空") private String username; /** * NotBlank 会自动去掉前后空格 */ @NotBlank(message = "用户密码不能为空") @Length(min = 6, max = 20, message = "密码不能少于6位多于20位") private String password; @NotNull(message = "邮箱不能为空", groups = RegisterGroup.class) @Email(message = "格式必须为有效邮箱") private String email;}

约束注解之组序列
// 登录场景public interface LoginGroup{}// 注册场景public interface RegisterGroup{}// 组排序,先验证登录场景再验证注册,再是默认(有些属性没有标注LoginGroup还是RegisterGroup)@GroupSequence({LoginGroup.class, RegisterGroup.class, Default.class})public interface Group{}

高级约束之参数校验


自定义手机号约束注解



划线
评论
复制
发布于: 2020 年 08 月 23 日阅读数: 49

HeGuang
关注
不要问我捷径在哪里,捷径只在深夜的孤独中 2018.09.28 加入
还未添加个人简介
评论