编写注解类
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
//通过UserStatusValidator类实现注解的相关校验操作
@Constraint(validatedBy = UserStatusValidator.class)
@Documented
public @interface UserStatus {
Stringmessage()default "没有这个类型,请重新选择!";
Class[]groups()default {};
Class[]payload()default {};
}
编写注解实现类
public class UserStatusValidatorimplements ConstraintValidator {
@Override
public void initialize(UserStatus constraintAnnotation) {
}
@Override
public boolean isValid(Integer s, ConstraintValidatorContext constraintValidatorContext) {
//判断传入的值 s 是否是集合里的值
return Arrays.asList(1,2).contains(s);
}
}
编写实体类
@Data
public class UserVo {
private Integerid;
private Stringname;
@UserStatus(message ="用户类型错误!")
private Integerstatus;
}
编写调用类
@RequestMapping(value ="/user/addUser", produces = MediaType.APPLICATION_JSON_VALUE,method = {RequestMethod.POST})
@ResponseBody
public ResultDTOaddUser(@RequestBody @Valid UserVo userVo){
logger.info("addUser-{} start ." , JSON.toJSONString(userVo));
return new ResultDTO<>();
}