定义注解:
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = MyConstraintorMethod.class)
public @interface MyConstraintVilidator {
String message() ; //验证不通过的时候输入
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
其中:@Constraint(validatedBy = MyConstraintorMethod.class) 这是我们判断的逻辑这里面
@Slf4j
public class MyConstraintorMethod implements ConstraintValidator<MyConstraintVilidator, Object> {
@Autowired
private PersonService personService;
@Override
public void initialize(MyConstraintVilidator myConstraintVilidator) {
log.info("MyConstraintVilidatorMethod 初始化");
}
@Override
public boolean isValid(Object o, ConstraintValidatorContext constraintValidatorContext) {
if (StringUtils.isEmpty(o)) {
return false; //验证不通过
}
personService.greeting("jaychou");
return true;
}
}
在字段里面
@MyConstraintVilidator(message = "xxxx")
private String testConstraint;
这算是一个模板吧
本文深入探讨了Java中自定义注解的创建与使用,包括@Target、@Retention及@Constraint等元注解的应用,详细讲解了如何通过实现ConstraintValidator接口来定制验证逻辑,并在字段上应用自定义注解进行数据校验。
618

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



