Ver código fonte

增加 校验框架配置与全局异常处理

疯狂的狮子li 4 anos atrás
pai
commit
616fbc45ae

+ 26 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ValidatorConf.java

@@ -0,0 +1,26 @@
+package com.ruoyi.framework.config;
+
+import org.hibernate.validator.HibernateValidator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.validation.Validation;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+
+@Configuration
+public class ValidatorConf {
+
+    /**
+     * 配置校验框架 快速返回模式
+     */
+    @Bean
+    public Validator validator() {
+        ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
+                .configure()
+                .failFast(true)
+                .buildValidatorFactory();
+        return validatorFactory.getValidator();
+    }
+
+}

+ 12 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java

@@ -17,6 +17,8 @@ import com.ruoyi.common.exception.CustomException;
 import com.ruoyi.common.exception.DemoModeException;
 import com.ruoyi.common.utils.StringUtils;
 
+import javax.validation.ConstraintViolationException;
+
 /**
  * 全局异常处理器
  * 
@@ -95,6 +97,16 @@ public class GlobalExceptionHandler
         return AjaxResult.error(message);
     }
 
+    /**
+     * 自定义验证异常
+     */
+    @ExceptionHandler(ConstraintViolationException.class)
+    public AjaxResult constraintViolationException(ConstraintViolationException e) {
+        log.error(e.getMessage(), e);
+        String message = e.getConstraintViolations().iterator().next().getMessage();
+        return AjaxResult.error(message);
+    }
+
     /**
      * 自定义验证异常
      */