第一步:自定义注解@Gender
用于判断性别字段是否符合约束,实现对性别字段的合法性校验,sex只能传入“男“或“女”。
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = GenderValidator.class)
public @interface Gender {
String message() default "性别输入错误";
Class[] groups() default {};
Class[] payload() default {};
}
第二步:自定义验证器:
public class GenderValidator implements ConstraintValidator {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (null == value) {
return true;
}
return "男".equals(value) || "女".equals(value);
}
}
第三步:实体类
@Data
@ToString
public class User {
@Gender
private String gender;
}
第四步:控制器:
@RestController
@RequestMapping("/user4")
public class UserController {
//分组校验:添加用户
@PostMapping("addUser")
public void addUser(@Valid User user) {
System.out.println(user);
}
}