自定义异常主要为首先定义一个注解:
1.自定义注解
@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy =ConstraintValidte.class )//这个表示具体实现验证的类名
public @interface Myconstract {
/**
*
* 自定义验证注解必须保留着三个属性因为原有注解也有这三个属性
*/
String message() default "{javax.validation.constraints.NotBlank.message}";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
···
以下为ConstraintValidte.class为具体验证的内容
//Object代表的是当前这个注解Myconstract只能放在field类型为Object的字段上
public class ConstraintValidte implements ConstraintValidator<Myconstract,Object> {
/**
* 这个类里面可以通过AutoWird 注入spirng的 此类不用使用注解@Compoment因为spirng看到实现了ConstraintValidator接口,
*
* l例如我们可以引入数据库的接口调用验证表单重复等信息
*
*/
@Override
public boolean isValid(Object value, ConstraintValidatorContext context) {
System.out.println(value+"这是第一个自定义调研filed");
return true;
}
@Override
public void initialize(Myconstract constraintAnnotation) {
}
}
然后具体的类那里验证就可以了