38 lines
1.0 KiB
Java
38 lines
1.0 KiB
Java
package com.imyeyu.spring.util;
|
|
|
|
import com.imyeyu.java.TimiJava;
|
|
import jakarta.validation.ConstraintValidator;
|
|
import jakarta.validation.ConstraintValidatorContext;
|
|
|
|
import java.lang.annotation.Annotation;
|
|
|
|
/**
|
|
* 数据验证动态消息返回抽象类
|
|
*
|
|
* @param <A> 注解类型
|
|
* @param <T> 校验数据类型
|
|
* @author 夜雨
|
|
* @version 2023-05-07 00:08
|
|
*/
|
|
public abstract class AbstractValidator<A extends Annotation, T> implements ConstraintValidator<A, T> {
|
|
|
|
/**
|
|
* 验证处理器,入参验证数据,返回错误消息语言映射,返回 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;
|
|
}
|
|
}
|