package com.imyeyu.spring.util; import com.imyeyu.java.TimiJava; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; import java.lang.annotation.Annotation; /** * 数据验证动态消息返回抽象类 * * @param 注解类型 * @param 校验数据类型 * @author 夜雨 * @version 2023-05-07 00:08 */ public abstract class AbstractValidator implements ConstraintValidator { /** * 验证处理器,入参验证数据,返回错误消息语言映射,返回 null 时表示通过验证 * * @param t 验证数据 * @return 验证消息回调 */ protected abstract String inspector(T t); @Override public boolean isValid(T value, ConstraintValidatorContext context) { String msgKey = inspector(value); if (TimiJava.isNotEmpty(msgKey)) { context.disableDefaultConstraintViolation(); context.buildConstraintViolationWithTemplate(msgKey).addConstraintViolation(); return false; } return true; } }