javax.validation 自定义校验注解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixx3/article/details/100899648
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

@Target( {ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = TypeEnumValidator.class)
@Documented
public @interface TypeConstraint {
    String message() default "pricing rule type is incorrect";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.Arrays;

public class TypeEnumValidator implements ConstraintValidator<TypeConstraint, Type> {

    private String message;

    @Override
    public void initialize(PriceRuleTypeConstraint annotation) {
        message = annotation.message();
    }

    @Override
    public boolean isValid(type value, ConstraintValidatorContext context) {
        return Arrays.stream(Type.values()).anyMatch(type -> Type.equals(value));
    }
}

public enum Type {
    TIME,
    DATE,
    DATE_TIME
}

猜你喜欢

转载自blog.csdn.net/weixx3/article/details/100899648