疯狂的狮子li
2021-11-03 1d32420a279bc42b356168181c3a8254dd14e1dd
add 增加 ValidatorUtils 校验框架工具 用于在非 Controller 的地方校验对象
已添加1个文件
已修改1个文件
31 ■■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.common.utils;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
/**
 * Validator æ ¡éªŒæ¡†æž¶å·¥å…·
 *
 * @author L.cm
 */
public class ValidatorUtils {
    private static final Validator VALID = Validation.buildDefaultValidatorFactory().getValidator();
    public static <T> void validate(T object, Class<?>... groups) {
        Set<ConstraintViolation<T>> validate = VALID.validate(object, groups);
        if (!validate.isEmpty()) {
            throw new ConstraintViolationException("参数校验异常", validate);
        }
    }
}
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
@@ -9,6 +9,7 @@
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.ValidatorUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.demo.domain.bo.TestDemoBo;
import com.ruoyi.demo.domain.vo.TestDemoVo;
@@ -98,7 +99,10 @@
    @Log(title = "测试单表", businessType = BusinessType.INSERT)
    @RepeatSubmit(interval = 2, timeUnit = TimeUnit.SECONDS, message = "不允许重复提交")
    @PostMapping()
    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody TestDemoBo bo) {
    public AjaxResult<Void> add(@RequestBody TestDemoBo bo) {
        // ä½¿ç”¨æ ¡éªŒå·¥å…·å¯¹æ ‡ @Validated(AddGroup.class) æ³¨è§£
        // ç”¨äºŽåœ¨éž Controller çš„地方校验对象
        ValidatorUtils.validate(bo, AddGroup.class);
        return toAjax(iTestDemoService.insertByBo(bo) ? 1 : 0);
    }