From 3e9a15295a79901cf1c5fa603d6a7407e7e2a2ec Mon Sep 17 00:00:00 2001 From: Charles7c Date: Mon, 24 Jun 2024 22:09:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(core):=20=E6=96=B0=E5=A2=9E=20JSR=20303=20?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- continew-starter-core/pom.xml | 7 ++++++ .../core/util/validate/ValidationUtils.java | 22 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/continew-starter-core/pom.xml b/continew-starter-core/pom.xml index 1db90fbc..632a5eae 100644 --- a/continew-starter-core/pom.xml +++ b/continew-starter-core/pom.xml @@ -23,6 +23,13 @@ spring-boot-configuration-processor + + + org.hibernate.validator + hibernate-validator + true + + net.dreamlu diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java index 8518e2f2..e16f6412 100644 --- a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java +++ b/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java @@ -16,9 +16,14 @@ package top.continew.starter.core.util.validate; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.extra.spring.SpringUtil; +import jakarta.validation.ConstraintViolation; import top.continew.starter.core.exception.BadRequestException; +import java.util.Set; import java.util.function.BooleanSupplier; /** @@ -173,4 +178,21 @@ public static void throwIf(boolean condition, String template, Object... params) public static void throwIf(BooleanSupplier conditionSupplier, String template, Object... params) { throwIf(conditionSupplier, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); } + + /** + * JSR 303 校验 + * + * @param obj 被校验对象 + * @param groups 分组 + */ + public static void validate(Object obj, Class... groups) { + jakarta.validation.Validator validator = SpringUtil.getBean(jakarta.validation.Validator.class); + Set> violations = validator.validate(obj, groups); + if (CollUtil.isEmpty(violations)) { + return; + } + throw ReflectUtil.newInstance(EXCEPTION_TYPE, violations.stream() + .map(ConstraintViolation::getMessage) + .findFirst()); + } }