1.注解类接口

@Documented
@Constraint(validatedBy = { UserStatusValidator.class}) // 说明当前注解要被谁来完成校验工作
@Target({ FIELD})
@Retention(RUNTIME)
public @interface UserStatus {
String message() default "status必须是1000/1001/1002";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
2.注解实现类

public class UserStatusValidator implements ConstraintValidator<UserStatus, Integer> {
@Override
public void initialize(UserStatus constraintAnnotation) {
}
@Override
public boolean isValid(Integer value, ConstraintValidatorContext context) {
if ( value == null ) {
return true;
}
Set<Integer> set = new HashSet<>();
set.add(1000);
set.add(1001);
set.add(1002);
return set.contains(value);
}
}
3.测试校验

这篇博客介绍了Java中注解的创建与使用,特别是UserStatus注解及其对应的UserStatusValidator校验器。通过注解实现了对Integer类型的字段进行特定值的校验,确保状态值只能为1000、1001或1002。同时,文章还展示了如何在实际测试中应用这个校验机制。
912

被折叠的 条评论
为什么被折叠?



