1.自定义校检字段注解:
注解:
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = MyConstraintValidated.class)
public @interface MyConstraint {
String message();
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
校检:
public class MyConstraintValidated implements ConstraintValidator<MyConstraint, Object> {
@Autowired
private HelloServiceImp helloServiceImp;
@Override
public void initialize(MyConstraint myConstraint) {
System.out.println("MyConstraintValidator init.....");
}
@Override
public boolean isValid(Object o, ConstraintValidatorContext constraintValidatorContext) {
if (o != null && !o.equals("")) {
return true;
}
helloServiceImp.hello((String)o);
return false;
}
}
@MyConstraint(message = "用户名不能为空")
private String name;